【436】Solution for LeetCode Problems
Coding everyday. ^_^
1. Two Sum
- 重点知识:指针可以存储数值,通过 malloc 新建数组
- int* returnSize:Size of the return array. Store the value in a pointer, say 2.
*returnSize = 2 - My solution:
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
int* twoSum(int* nums, int numsSize, int target, int* returnSize){
*returnSize = 2;
int* returnArray = malloc(sizeof(int)*(*returnSize));
for (int i = 0; i < numsSize-1; i++) {
for (int j = i+1; j < numsSize; j++) {
if (nums[i] + nums[j] == target) {
returnArray[0] = i;
returnArray[1] = j;
return returnArray;
}
}
}
returnArray[0] = -1;
returnArray[1] = -1;
return returnArray;
}
2. Add Two Numbers
- 重点知识:不能通过数字来计算,考虑进位,考虑链表遍历和插入节点,通过 malloc 新建节点
- Don't use integer to calculate in this problem since the numbers are very long.
- Need to consider carry bit.
- This linked list's head is the first node.
- My solution:
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/ struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2){
struct ListNode* p1;
struct ListNode* p2;
struct ListNode* l3 = NULL;
struct ListNode* p3 = NULL;
p1 = l1;
p2 = l2; int carry_bit = 0;
while (p1 != NULL || p2 != NULL || carry_bit == 1) {
int num1;
int num2;
int num3;
if (p1 == NULL && p2 == NULL && carry_bit == 1) {
num3 = 1;
carry_bit = 0;
}
else {
if (p1 == NULL) {
num1 = 0;
}
else {
num1 = p1->val;
p1 = p1->next;
}
if (p2 == NULL) {
num2 = 0;
}
else {
num2 = p2->val;
p2 = p2->next;
} num3 = num1 + num2 + carry_bit;
if (num3 >= 10) {
carry_bit = 1;
num3 = num3 - 10;
}
else {
carry_bit = 0;
}
} struct ListNode* tmp;
tmp = malloc(sizeof(struct ListNode));
if (tmp == NULL) {
fprintf(stderr, "Out of memory.\n");
exit(1);
}
tmp->val = num3;
tmp->next = NULL; if (p3 == NULL) {
p3 = tmp;
l3 = p3;
}
else {
p3->next = tmp;
p3 = p3->next;
}
} return l3;
}
3. Longest Substring Without Repeating Characters
- 重点知识:多层遍历,时间复杂度过高
- My solution:
int lengthOfLongestSubstring(char * s){
int length = strlen(s);
if (length == 1){
return 1;
}
int max = 0;
for (int i = 0; i < length; i++) {
int flag = 1;
for (int j = i + 1; j < length & flag; j++) {
for (int k = j - 1; k >= i; k--) {
if (s[j] == s[k]) {
int tmp = j - i;
if (max < tmp) {
max = tmp;
}
i = k;
flag = 0;
break;
}
if (k == i) {
int tmp = j - i + 1;
if (max < tmp) {
max = tmp;
}
}
}
}
}
return max;
}
【436】Solution for LeetCode Problems的更多相关文章
- about家庭智能设备部分硬件模块功能共享【协同工作】solution
本人设备列表: Onda tablet {Android} wifi Desktop computer {win7.centos7} 外接蓝牙adapter PS interface 键盘.鼠标{与同 ...
- 【NOIP2012TG】solution
D1T1(Vigenere) 题意:给你一个原串与一个密码串,问你按照题意规则加密后的密文. 解题思路:暴力模拟. #include <stdio.h> ],c[],u1[],u2[]; ...
- 【NOIP2014TG】solution
链接:https://www.luogu.org/problem/lists?name=&orderitem=pid&tag=83|31 D1T1(rps) 题意:给你一个周期,以及胜 ...
- 【NOIP2016TG】solution
传送门:https://www.luogu.org/problem/lists?name=&orderitem=pid&tag=83%7C33 D1T1(toys) 题意:有n个小人, ...
- 【NOIP2015TG】solution
链接:https://www.luogu.org/problem/lists?name=&orderitem=pid&tag=83%2C32 D1T1(magic) 题意:看题目.. ...
- 【NOIP2013TG】solution
链接:https://www.luogu.org/problem/lists?name=&orderitem=pid&tag=83%2C30 D1T1:转圈游戏(circle) 题意: ...
- 【NOIP2011TG】solution
老师最近叫我把NOIPTG的题目给刷掉,于是就开始刷吧= = 链接:https://www.luogu.org/problem/lists?name=&orderitem=pid&ta ...
- 【AtCoder】AGC005F - Many Easy Problems
题解 我们把一个点的贡献转化为一条边的贡献,因为边的数量是点的数量-1,最后再加上选点方案数\(\binom{n}{k}\)即可 一条边的贡献是\(\binom{n}{k} - \binom{a}{k ...
- 【C++】关键字回忆leetcode题解
20200515 前缀和 no.560 20200518 动态规划 no.152 20200520 状态压缩 no.1371 20200521 中心扩散 no.5 20200523 滑动窗口 no.7 ...
随机推荐
- Dubbo源码分析(4):Protocol
Protocol接口是Dubbo框架的核心组件.Dubbo框架启动protocol接口实现类,由spring的xml文件配置决定.RegistryProtocol协议是Protocol协议的核心,它负 ...
- 【贪心】Stripies POJ 1862
题目描述:http://poj.org/problem?id=1862 题目大意:你有n个数要合并,每两个数x,y合并后得到2*sqrt(x*y).求最后留下的一个数的最小值. 每合并一次,就会有数被 ...
- S1_搭建分布式OpenStack集群_01 准备虚拟机
Openstack版本:openstack-queen 版本 一.环境准备 网络规划: Management + API Network:10.10.11.0/24 eth1 网桥:br1 VM ...
- Codevs 1070 普通递归关系(矩阵乘法)
1070 普通递归关系 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 大师 Master 题目描述 Description 考虑以下定义在非负整数n上的递归关系 f(n) = f0 ...
- 洛谷P1162(自我感觉思路还算巧妙的一道题)
P1162 填涂颜色 题目描述 由数字0 组成的方阵中,有一任意形状闭合圈,闭合圈由数字1构成,围圈时只走上下左右4个方向.现要求把闭合圈内的所有空间都填写成2.例如:6X6的方阵(n=6),涂色前和 ...
- 在Modelsim中使用dsp 48e进行仿真
在Modelsim中使用DSP 48E仿真时,需要用到glbl模块,它的调用方法如下所示: vlog -incr GND.v VCC.v FDRE.v DSP48E.vvlog -incr glbl. ...
- 我们使用 Kafka 生产者在发消息的时候我们关注什么(Python 客户端 1.01 broker)
之前使用 Kafka 的客户端消费者比较多一点,而且也是无脑订阅使用也没有深入了解过具体的参数.总的来说使用不够细节. 这次公司项目活动期间暴露非常多的问题,于是有了这篇文章. 首先我们来拆解一下 K ...
- Spark-Hadoop、Hive、Spark 之间是什么关系?
作者:Xiaoyu Ma链接:https://www.zhihu.com/question/27974418/answer/38965760来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商 ...
- linux 查看内存,free,ps,说明Buffers,Cached,SReclaimable
查看机器剩余内存free即可,百度就可以轻松查到,主要想说的 查所有进程占用内存情况并排序: ps aux | sort -nk5 k5代表根据RSS排序,k6代表VSZ排序. ----------- ...
- [系统]win10远程桌面其他电脑出现如下错误,由于数据加密错误,这个会话讲结束,请重新连接到远程计算机
win10远程桌面其他电脑出现如下错误,由于数据加密错误,这个会话讲结束,请重新连接到远程计算机 这可能是由于credssp加密oracle修正的错误 HKEY_LOCAL_MACHINE\SOFTW ...