- 博客(13)
- 收藏
- 关注
原创 最长公共前缀
最长公共前缀 if(strsSize==0) return ""; if(strsSize==1) return strs[0]; char * a=(char*)malloc(200*sizeof(char)); for(int j=0;;j++){ if(strs[0][j]=='\0' || strs[1][j]=='\0'){ a[j]='\0'; break; } if(st
2021-01-23 22:21:13 66
原创 只出现一次的数字II
只出现一次的数字IIint singleNumber(int* nums, int numsSize){ int i= 0; int one= 0; int two= 0; for(i=0;i<numsSize;i++){ one=~two&(one^nums[i]); two=~one&(two^nums[i]); } return iOne;}题中要求尽量不使用额外的 空间,并且还要求是线性
2021-01-21 21:07:42 67
原创 只出现一次的数字
只出现一次的数字{ int i = 0; int ret = 0; for (i = 0; i < n; i++) ret ^= a[i]; return ret; }掌握方法之后就很简单,并且把时间复杂度控制在了线性时间复杂度。灵活运用异或运算的方法。
2021-01-20 20:25:26 62
原创 排序链表
排序链表 void swap(int *a, int *b){ int t=*a; *a=*b; *b=t;}struct ListNode *partion(struct ListNode *left,struct ListNode *right){ if(left == right || left->next == right) //如果只有一个元素或者两个元素,则直接返回第一个指针 return left; int pi
2021-01-19 23:02:40 69
原创 环形链表2笔记
环形链表ll/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */struct ListNode *detectCycle(struct ListNode *head) { int con=0;struct ListNode *f=head,*s=head; for(;f&&f->ne
2021-01-18 20:06:56 63
原创 两数相加
两数相加/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2){struct ListNode *head = NULL, *last = NULL; if(!l1)r
2021-01-18 19:22:17 62
原创 环形链表
环形链表/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */bool hasCycle(struct ListNode *head) { for(struct ListNode *f=head,*s=head;f&&f->next;) {s=s->next,f=f->next-
2021-01-16 20:56:17 61
原创 合并两个有序链表(笔记)
合并两个有序链表/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2){ if(!l1)return l2; if(!l2)return l1; str
2021-01-15 22:43:21 86 1
原创 最长回文串
最长回文串char * longestPalindrome(char * s){ int len=strlen(s),st=0,max=0; for (int i=0;i<len;i++){ int l=i-1,r=i+1; while(l>=0&&r<len&&s[l]==s[r]){ l--; r++; }
2021-01-14 22:51:10 98
原创 最小栈
最小栈笔记class MinStack {public: stack<int>data; stack<int>min;/*辅助栈,相应于对应每一个date的值都有一个对应的最小 值储存于min中(可理解为min是关于data的一个函数)*/ /** initialize your data structure here. */ MinStack() { } void push(int x
2021-01-12 23:07:12 86
原创 笔记(有效的括号)
笔记(有效的括号)bool isValid(char * s){int l=strlen(s),j=0; if(l%2!=0)return false; char t[l]; for(int i=0;i<l;i++){ if(s[i]=='('||s[i]=='['||s[i]=='{') t[j++]=s[i]; else{if(s[i]==')')s[i]='('; if(s[i]=='
2021-01-11 20:42:14 109
原创 回文数
回文数(非字符串)bool isPalindrome(long x){int first=0;long long i=0,num;num=x;if(x<0){return false;first=1;x=-x;}else{for(;x>0;){i=i*10;i=i+x%10;x=x/10;}if(first==1)i=-i;if(i>2147483647&&i<-2147483648)return false;else if(num =
2021-01-10 21:36:17 113
原创 整数反转
整数反转笔记int reverse(long x){int first=0;long long i=0;if(x<0){first=1;x=-x;}for(;x>0;){ i=i*10;i=i+x%10;x=x/10;}if(first==1)i=-i;if(i<=2147483647&&i>=-2147483648)return i;else return 0;}整体思路很简单,例题很经典,需要强调的是,虽然简单 ,但是要考虑的
2021-01-09 19:53:54 68
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人