今日LC
来源:互联网 发布:威客圈淘宝单 编辑:程序博客网 时间:2024/04/29 20:25
83. Remove Duplicates from Sorted List
ListNode* deleteDuplicates(ListNode* head) {
if(head == NULL ||head->next == NULL)
return head;
// if(head.length() == 1)
//return head;
ListNode* tmp = head;
//head = head->next;
while(tmp->next){
if(tmp->val == tmp->next->val){
tmp->next = tmp->next->next;
}
else
tmp = tmp->next;
}
return head;
}
体会:没怎么做过链表的题,需要新建一个指针,用于操作链表,删除内容,头指针不变,代表整个链表;
88. Merge Sorted Array
void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
//if(nums1.size()==NULL)
int tmp,a1,a2;
a1 = m-1;
a2 = n-1;
tmp = m+n-1;
while(a1>=0&&a2>=0){
if(nums1[a1]>nums2[a2]){
nums1[tmp] = nums1[a1];
tmp--;
a1--;
}
else{
nums1[tmp] = nums2[a2];
tmp--;
a2--;
}
}
while(a2>=0){
nums1[tmp] = nums2[a2];
tmp--;
a2--;
}
}
体会:从尾部向前扫,逐个比较,不要绕圈子;
100. Same Tree
bool isSameTree(TreeNode* p, TreeNode* q) {
if(p == NULL&& q == NULL)
return true;
if(p == NULL|| q == NULL)
return false;
//TreeNode *tmp1 = p;
//TreeNode *tmp2 = q;
if(p->val != q->val)
return false;
return isSameTree(p->left,q->left)&&isSameTree(p->right,q->right);
}
体会:树的问题第一次做,一般都用递归,记住!
141. Linked List Cycle
bool hasCycle(ListNode *head) {
if(head == NULL||head->next == NULL)
return false;
ListNode *p = head;//SLOW
ListNode *q = head;//QUICK
while(p!=NULL&&q!=NULL&&q->next!=NULL){
p = p->next;
q = q->next->next;
if(p == q)//MEET
return true;
}
return false;
}
体会:算法不会,设计一个快指针一个慢指针,指针相遇,即有cycle;
136. Single Number
int singleNumber(vector<int>& nums) {
int l = nums.size();
if(l == 0)
return 0;
//if(l == 1)
//return nums[0];
int num = nums[0];
for(int i = 1; i < l; i++){
num = num^nums[i];
}
return num;
}
体会:算法还是不会,要求时间复杂度是O(N);学会:相同数字取异得0;
这个题多研究了一下,觉得好有趣,手动异或了一个数组,发现每一步都可以检测出之前扫描过的落单的数字;
这个是可以累计的~
- 今日LC
- [LC]
- 今日
- 今日
- 今日
- 今日
- 今日
- 今日
- 今日
- LC-Display
- LC-Display
- LC-Display
- AAC-LC
- LC电路
- LC-Display
- LC-Display
- LC-Display
- LC-Display
- 斐波拉切数列
- Revit2015 API变化
- Linux安装后的一些问题
- 上网的几种方式(从表现形式上,即从外观介入方式上来说):1电话线上网 2网线上网 3光纤上网
- 今天碰到判断为空数据,想到null和""是不一样的,总结一下
- 今日LC
- 解决IllegalStateException: Can not perform this action after onSaveInstanceState
- 爱测未来开发-基于Oauth2.0的单点登录系统
- yii2 resetful 授权验证
- liunx常用命令
- 一次JSESSIONID的突发奇想
- Java NIO 系列教程(转) java nio
- 由typedef和函数指针引起的危机
- 使用gulp和browser-sync实现自动刷新浏览器