上一页 1 ··· 6 7 8 9 10 11 12 13 下一页

2014年3月28日

进程的状态转换

摘要: 转自:http://www.tantengvip.com/2011/10/state/四种进程间的状态转换:进程的状态转换图1.就绪–>执行 2.执行–>就绪 3.执行–>阻塞 4.阻塞–>就绪一、进程的三种基本状态进程在运行中不断地改变其运行状态。通常,一个运行进程必须具有以下三种基本状态。就绪(Ready)状态当进程已分配到除CPU以外的所有必要的资源,只要获得处理机便可立即执行,这时的进程状态称为就绪状态。执行(Running)状态当进程已获得处理机,其程序正在处理机上执行,此时的进程状态称为执行状态。阻塞(Blocked)状态正在执行的进程,由于等待某个事件发生 阅读全文

posted @ 2014-03-28 11:09 crane_practice 阅读(940) 评论(0) 推荐(0) 编辑

2014年3月26日

Swap Nodes in Pairs

摘要: 1 ListNode *swapPairs(ListNode *head) { 2 if(head==NULL||head->next==NULL)//链表为空或者只有一个节点 3 return head; 4 ListNode *p,*q,*h; 5 p=head; 6 q=head->next; 7 p->next=q->next; 8 q->next=p; 9 head=q;//头处理完了,其实这个时候就和一般情况下交换过之后是一样的了,就可以... 阅读全文

posted @ 2014-03-26 22:27 crane_practice 阅读(108) 评论(0) 推荐(0) 编辑

2014年3月25日

Maximum Subarray

摘要: 1 /* 2 从头开始,每次加过之后和之前的最大值比较,若比最大值大,则更新最大值 3 如果加到某个数时,值为负,那么下次累加的起点就要改变 4 */ 5 int maxSubArray(int A[], int n) { 6 if(A==NULL||nmax?sum:max;12 if(sum<0)13 sum=0;//如果加到某个数时,值为负,那么下次累加的起点就要改变14 }15 return max;16 }AC 阅读全文

posted @ 2014-03-25 20:22 crane_practice 阅读(95) 评论(0) 推荐(0) 编辑

Unique Paths

摘要: 1 int uniquePaths(int m, int n) { 2 if(m==0||n==0) 3 return 0; 4 int A[m][n]; 5 int i,j; 6 for(i=0;i<m;++i) 7 A[i][0]=1; 8 for(i=1;i<n;++i) 9 A[0][i]=1;10 for(i=1;i<m;++i){11 for(j=1;j<n;++j)12 ... 阅读全文

posted @ 2014-03-25 16:48 crane_practice 阅读(144) 评论(0) 推荐(0) 编辑

Merge Two Sorted Lists

摘要: 1 ListNode *mergeTwoLists(ListNode *l1, ListNode *l2) { 2 if(l1==NULL) 3 return l2; 4 if(l2==NULL) 5 return l1; 6 ListNode *head,*p; 7 if(l1->valval){ 8 head=l1; 9 l1=l1->next;10 }11 else{12 ... 阅读全文

posted @ 2014-03-25 11:45 crane_practice 阅读(95) 评论(0) 推荐(0) 编辑

Climbing Stairs

摘要: 1 int climbStairs(int n) 2 { 3 if(n<=0) 4 return 0; 5 if(n==1) 6 return 1; 7 if(n==2) 8 return 2; 9 return climbStairs(n-1)+climbStairs(n-2);10 }青蛙跳台阶问题,第一反应就是上面的代码了,结果是 超时 1 int climbStairs(int n) { 2 if(n<=0) 3 return 0; 4 in... 阅读全文

posted @ 2014-03-25 11:06 crane_practice 阅读(118) 评论(0) 推荐(0) 编辑

2014年3月24日

Sort Colors

摘要: 其实这个Follow up说的也很好哇,计数排序A rather straight forward solution is a two-pass algorithm using counting sort.First, iterate the array counting number of 0's, 1's, and 2's, then overwrite array with total number of 0's, then 1's and followed by 2's. 1 void sortColors(int A[], int n) 阅读全文

posted @ 2014-03-24 19:49 crane_practice 阅读(179) 评论(0) 推荐(0) 编辑

2014年3月23日

Merge Sorted Array

摘要: 如果另外开辟一个数组C,A,B从头开始比较,谁小,谁最先放到中,题上说最后都放到A中,那么就扫描C,复制数据就行了,时间复杂度O(m+n),空间复杂度O(m+n)当然还有比这个好的办法,空间复杂度O(1). 1 void merge(int A[], int m, int B[], int n) { 2 int C[m+n]; 3 int i=0,j=0,k=0; 4 while(i=0&&j>=0){ 7 if(A[i]=0){18 A[k]=A[i];19 k--... 阅读全文

posted @ 2014-03-23 19:17 crane_practice 阅读(128) 评论(0) 推荐(0) 编辑

2014年3月22日

Gray Code

摘要: 1 //reference http://blog.csdn.net/fightforyourdream/article/details/14517973 2 vector grayCode(int n) { 3 vector codes; 4 if(n>1;11 codes.push_back(tmp);12 }13 return codes;14 } 阅读全文

posted @ 2014-03-22 17:35 crane_practice 阅读(126) 评论(0) 推荐(0) 编辑

Populating Next Right Pointers in Each Node II ?

摘要: 1 void connect(TreeLinkNode *root) { 2 if(root==NULL) 3 return; 4 if(root->left&&root->right) 5 root->left->next=root->right; 6 if(root->next){ 7 if(root->left!=NULL&&root->right==NULL){ 8 if(root->next->left) 9 ... 阅读全文

posted @ 2014-03-22 11:59 crane_practice 阅读(158) 评论(0) 推荐(0) 编辑

上一页 1 ··· 6 7 8 9 10 11 12 13 下一页

导航