算法-三角形最小路径和

题目

思路

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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个链表

题目

合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。

示例:

输入:
[
1->4->5,
1->3->4,
2->6
]
输出: 1->1->2->3->4->4->5->6

阅读全文

算法-链表相交(ntersection of Two Linked Lists)

题目

编写一个程序,找到两个单链表相交的起始节点
注意:

  • 如果两个链表没有交点,返回 null.
  • 在返回结果后,两个链表仍须保持原有的结构。

阅读全文

如何建立一个composer私有包

最近发现分布式锁在很多项目都有所用到,所以想把之前完成的代码封装成pear包,供大家使用。
但是发现自己对composer并不是很熟悉,所以学习一番,在此记录以防自己忘记。

新建仓库

$ git clone git@gitlab.renrenche.com:web/jugg.git
$ cd jugg

阅读全文

http各个状态码含义

简介

  • 200请求成功
  • 301资源被转移
  • 404请求资源不存在
  • 500内部服务错误

    分类

阅读全文

C语言多维数组传参问题

刷题遇到个问题,需要传递一个二维数组作为实参。函数如下

1
2
int* spiralOrder(int** matrix, int matrixRowSize, int matrixColSize) {
}

阅读全文

tcp三次握手与四次挥手

三次握手

三次握手 是指tcp建立连接时候需要服务端和客户端发送三个网络包。
三次握手的目的是链接与服务器端口,并建立tcp连接,并同步连接双方的序列号和确认号,并交换tcp窗口大小信息。

阅读全文