12345678910111213141516171819202122232425262728
char* getPermutation(int n, int k) { char* result = (char*)malloc((n + 1) * sizeof(char)); bool* flag = (bool*)calloc(n, sizeof(bool)); int temp[10] = { 0 }; temp[n] = 1; temp[n - 1] = 1; int i = 0, t = 0, idx = 0, j = 0; for(i = n - 2; i > 0; i--) temp[i] = temp[i + 1] * (n - i); for(i = 1; i <= n; i++) { t = (k - 1) / temp[i]; idx = t; for(j = 1; j <= n; j++) { //取当前最小的未使用的数值 if(!flag[j]) { t--; if(t == -1) break; } } result[i - 1] = '0' + j; flag[j] = true; k -= idx * temp[i]; } result[n] = '\0'; free(flag); return result;}
阅读全文
Given an integer array nums, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum.
Given a 2D binary matrix filled with 0’s and 1’s, find the largest square containing only 1’s and return its area.
给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。
百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”
合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。
示例:
输入:[ 1->4->5, 1->3->4, 2->6]输出: 1->1->2->3->4->4->5->6
编写一个程序,找到两个单链表相交的起始节点注意:
最近发现分布式锁在很多项目都有所用到,所以想把之前完成的代码封装成pear包,供大家使用。但是发现自己对composer并不是很熟悉,所以学习一番,在此记录以防自己忘记。
$ git clone git@gitlab.renrenche.com:web/jugg.git$ cd jugg
刷题遇到个问题,需要传递一个二维数组作为实参。函数如下
12
int* spiralOrder(int** matrix, int matrixRowSize, int matrixColSize) {}
三次握手 是指tcp建立连接时候需要服务端和客户端发送三个网络包。三次握手的目的是链接与服务器端口,并建立tcp连接,并同步连接双方的序列号和确认号,并交换tcp窗口大小信息。
三次握手