leetcode 刷题为面试准备
来源:互联网 发布:linux mint chromium 编辑:程序博客网 时间:2024/06/05 08:50
1.Two Sum
这题刚开始想用O(N)的方法,但是发现如果用数组标记 [ target-numbers[i] ] 的话,可能会有负数的情况,所以就两个for循环想暴力看看能不能过的,一交发现T了。然后想了下,数组其实可以用map解决,把map当成数组用得了,可以标记负数的情况。java中也有,phthon还没用过。
2.Remove Nth Node From End of List
刚开始想想这个链表没有pre指针,所以想了好久,也没想出个好法子,之前也遇到一个这样的链表没有pre指针的题,原来用的是双指针标记步数,一遍遍历就能得出结果。
算法:
1 准备两个指针first, second
2 先让fisrt走n步
3 让fisrt和second同时走直到first遇到结尾
4 要用一个temp指针来记录second前一个node,用来删除second用。
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode *removeNthFromEnd(ListNode *head, int n) { ListNode *first=head,*second=head,*tem=head; for(int i=0;i<n;i++) first=first->next; while(first) { tem=second; first=first->next; second=second->next; } if(second==head||second==NULL) head=head->next; else tem->next=second->next; return head; }};
3.Merge Two Sorted Lists
两链表连接起来,连接后的链表还是排序好的,处理好结节就可以了。
class Solution{public: ListNode *mergeTwoLists(ListNode *l1, ListNode *l2) { ListNode *p=NULL,*q=NULL; while(l1&&l2) { if(l1->val<=l2->val) { if(p) { p->next=new ListNode(l1->val); p=p->next; } else p=new ListNode(l1->val),q=p; l1=l1->next; } else if(l1->val>l2->val) { if(p) { p->next=new ListNode(l2->val); p=p->next; } else p=new ListNode(l2->val),q=p; l2=l2->next; } //cout<<"+++"<<endl; } //cout<<"---"<<endl; if(l1) { if(!p) return l1; while(l1) { p->next=new ListNode(l1->val); l1=l1->next; p=p->next; } } else { if(!p) return l2; while(l2) { p->next=new ListNode(l2->val); l2=l2->next; p=p->next; } } return q; }};
0 0
- leetcode 刷题为面试准备
- leetcode面试准备: Word Pattern
- 面试准备
- 面试准备
- 面试准备
- 面试准备
- 面试准备
- 面试准备
- 面试准备
- 面试准备
- 面试准备
- 面试准备
- 面试准备
- 面试准备
- 面试准备
- 面试准备
- 面试准备
- 面试准备
- 第四周项目一——三角形类的构造函数(4)
- pat_1011
- [算法] 极大极小搜索
- Telephony如何为第三方应用提供服务
- 程序员,你为什么需要一台mac?
- leetcode 刷题为面试准备
- POJ3468 线段树
- sqlserver数据库中随机生成N位的随机数
- zoj 1745 Are We There Yet?
- 360校园招聘2015届技术类笔试题
- 关于tomcat启动web时classloader加载el实现类报错的解决方式
- QT中PRO文件写法的详细介绍
- 第四周 项目三 用对象数组操作长方柱类
- groovy 速学 - 30 - Sql