LeetCode||C语言
asheroly
这个作者很懒,什么都没留下…
展开
-
371. Sum of Two Integers
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl原创 2017-03-19 19:49:19 · 234 阅读 · 0 评论 -
206. Reverse Linked List(c语言)
测试面试必考的反转链表/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */struct ListNode* reverseList(struct ListNode* head) { if(head==N原创 2017-05-11 16:11:55 · 1258 阅读 · 0 评论 -
521. Longest Uncommon Subsequence I(C语言)
这道题感觉没什么意思,求最长的不同的序列,看别人写的答案,就是比较a和b谁长,就是最长的不同的序列,想想没毛病,就是两个序列大小相同时,如果是完全相同的序列,那就输出-1,我就比较了一个第一个数相不相同,如果相同说明后面也有可能有相同的,但是呢,这样输出-1就能ac了 ,我也不想细想了。如果不同没,那a或者b的长度就是最长不同的序列Given a group of two strings, y原创 2017-05-03 16:13:36 · 335 阅读 · 0 评论 -
448. Find All Numbers Disappeared in an Array(c语言)
思想比打代码重要啊!我的思路是先从小到大排序,然后一个一个找,因为有重复的数字,数字和下标相同的或者和下标-1相同的就不记录,不同的话说明是第一次遇到,就放到新的数组里,然而,我一看排序的时间复杂度,都 〉O(n),遂罢,看答案答案的思路就清晰,逻辑就正常很多新建一个数组,按照nums的值,对应出新建数组的下标,有就标记为1,最后扫一遍数组,把所有标记为0的,也就是缺少的值,从头放原创 2017-05-03 19:16:59 · 347 阅读 · 0 评论 -
389. Find the Difference(C语言)
这道题居然做得这么顺利, 果然刷题不能靠体力,要靠脑力!就是想虽然你顺序不一样,但你值一样的,不就是多一个数吗,分别就和,然后做差,okay了 AC!分分钟搞定char findTheDifference(char* s, char* t) { int i=0; int num1=0,num2=0; int lens=strlen(s); int l原创 2017-05-03 19:43:26 · 374 阅读 · 0 评论 -
492. Construct the Rectangle(C语言)
求长和宽嘛,正好和我现在的课题,给处理器做的二维矩阵一样的很好理解,找到L和W差值最小,就是先对area开方然后W不断-1去尝试,求余,什么时候能整除,那就是答案一开始我是这样写的/** * Return an array of size *returnSize. * Note: The returned array must be malloced, assume calle原创 2017-05-03 20:51:26 · 518 阅读 · 0 评论 -
563. Binary Tree Tilt(C语言)
我理解的题意是:1的下面是2和3,1的tilt是|2-3|=12的下面是4和5,2的tilt是|4-5|=13的下面是6和7,3的tilt是|6-7|=14,5,6,7下面都是NULL,4,5,6,7的tilt是0所以这个树的tilt是1+1+1+0*4=3如果你也是这么理解的,那么你和我一样,都理解错了。题意是:4,5,6,7下面都是NULL,4,5,6,原创 2017-05-06 10:28:43 · 516 阅读 · 0 评论 -
383. Ransom Note(C语言)
前面数组的字母可以在后面数组中找到,并且右边的每个字母只能用一次我的实现思路是:先遍历左边的数组,在右边的数组一个一个的找,找到一致的字母就把值设为0,跳出这层循环,开始进行左边数组下一个字母的寻找,左边数组遍历完之后,如果右边数组0的个数和左边数组的字母数一致,就证明右边的可以表示出左边的,如果不一致说明不能表示。bool canConstruct(char* ransomNote,原创 2017-05-06 21:00:27 · 434 阅读 · 0 评论 -
404. Sum of Left Leaves(C语言)
Find the sum of all left leaves in a given binary tree.Example: 3 / \ 9 20 / \ 15 7There are two left leaves in the binary tree, with values 9 and 15 respectively. Return 24原创 2017-05-07 12:42:22 · 450 阅读 · 0 评论 -
387. First Unique Character in a String(C语言)
看有没有重复的字母出现,没有的话输出第一个没重复的字母的下标,都是重复的话就输出-1Given a string, find the first non-repeating character in it and return it's index. If it doesn't exist, return -1.Examples:s = "leetcode"return原创 2017-05-07 13:39:00 · 917 阅读 · 0 评论 -
217. Contains Duplicate(C语言)
一个数组,如果有重复的数就返回true,都不相同就返回false好不容易调好了,超时,网上都说用哈希,map什么的,找了半天都是java。。。。下面是我那个超时的程序,先冒泡升序排序再两两比较bool containsDuplicate(int* nums, int numsSize) { int flag = 0,temp=0; if(numsSize==1||num原创 2017-05-11 14:50:24 · 752 阅读 · 0 评论 -
104. Maximum Depth of Binary Tree(C语言)
求树的深度,递归!我一开始把判断根节点是不是空指针放到int定义l_d和r_d之后了,出现了错误,仔细想想,顺序确实是重要的/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *r原创 2017-05-03 15:00:29 · 427 阅读 · 0 评论 -
461. Hamming Distance(c语言)
首先,学习下概念,汉明距离下面我们要做的是 1.找位不同 2.求位不同的个数 x,y位不同可以用异或(相同的为0,不同的为1) 求异或后1的个数,可以用移位加计数int hammingDistance(int x, int y) { int result=0,count=0; result=x^y; while(result>0){ if((resul原创 2017-04-06 09:56:51 · 1347 阅读 · 0 评论 -
258. Add Digits
本来想看看这样行不行,结果一下就AC了,超开心可能这道题就是十位和个位吧Given a non-negative integer num, repeatedly add all its digits until the result has only one digit.For example:Given num = 38, the process is lik原创 2017-03-09 21:00:56 · 209 阅读 · 0 评论 -
171. Excel Sheet Column Number
题目分析:将Excel表格左侧排序列字符转化为数字比如 A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 分析原来十进制是 1 = 1 11 = (1)*10+1 111 = (1*10+1)*10+1也就是11*10+1 ...原创 2017-03-07 22:02:31 · 235 阅读 · 0 评论 -
238. Product of Array Except Self C语言
不会申请空间,不会free/** * Return an array of size *returnSize. * Note: The returned array must be malloced, assume caller calls free(). */int* productExceptSelf(int* nums, int numsSize, int* returnSize原创 2017-03-10 22:08:03 · 269 阅读 · 0 评论 -
283.Move Zeroes(C语言)
第一次竟然因为第二个for循环写的nums[temp]=0;问师父哪里错了 好尴尬void moveZeroes(int* nums, int numsSize) { int i=0; int temp=0; for(i=0;i<numsSize;i++){ if(nums[i]!=0){ nums[temp]=nums[i];原创 2017-03-13 21:47:28 · 522 阅读 · 0 评论 -
268. Missing Number(C语言)
题意是给出一个数组,0,1,2,3,4,5……这种,找出里面消失的那个数一开始想那就for循环一遍,看nums[i]+1!=nums[i+1]那就说明少数了呗 ,后来发现这个是乱序的 要在线性时间里完成,那就新建一个数组a把他们重新排好序,正好从0开始,就是数组的下标,a[i]!=i的就是missing number多次调试,还要考虑a数组比nums数组应该多一个值int miss原创 2017-03-15 09:38:18 · 505 阅读 · 0 评论 -
557. Reverse Words in a String III(C语言)
今天6:30起来,瞌睡了一上午,在柏宁的帮助下把这道反转的题搞出来了嘿嘿char* reverseWords(char* s) { int i=0,j=0; int start=0,end=0; int len=strlen(s); char temp; for(i=0;i<=len;i++){ if(s[i]==' '||s[i]=='\0'原创 2017-04-12 10:00:23 · 1059 阅读 · 0 评论 -
412. Fizz Buzz(C语言)
这道题是字符串数组,没有接触过,师兄都在说我大学是怎么上的.......虽然看起来是一个数组,但是一个char[1]只能放一个字节也就是一个字符,比如F所以输出的是一个字符串数组从百度搜答案,师兄说你为什么不看discuss于是找来了一个 研究了一天终于明白了 char** fizzBuzz(int n, int* returnSize) {里面的**是和子函数返回的类型一致原创 2017-03-16 17:01:04 · 1846 阅读 · 0 评论 -
476. Number Complement(C语言)
题意: 给一个正整数,通过与它位数相同的补码,得出对应的整数 思路: 如果知道整数在二进制时的长度,用mask等于整数的长度,值都是111111,这样mask和整数做异或,和1相同异或后就是0,和1不同异或后为1,这样就成功设置出补码了。原创 2017-04-13 19:03:12 · 445 阅读 · 0 评论 -
226. Invert Binary Tree
Invert a binary tree. 4 / \ 2 7 / \ / \1 3 6 9to 4 / \ 7 2 / \ / \9 6 3 1原创 2017-03-09 20:46:23 · 182 阅读 · 0 评论 -
561. Array Partition I(C语言)
这道题什么鬼不应该输出5,[2,3],一组,[1,4]一组么Given an array of 2n integers, your task is to group these integers into n pairs of integer, say (a1, b1), (a2, b2), ..., (an, bn) which makes sum of min(ai, bi原创 2017-05-10 11:03:09 · 1318 阅读 · 1 评论