本来想回家之前做到100道题目的,但是今天实在是..做了好几个题都是Time Limit Exceeded…老大尽力了。
其实最近题目做的一直没状态..瓶颈到了。剩下的都是不太好做的。
anyway..回家啦!see u next week!
2015年12月16日17:21:20
本来想回家之前做到100道题目的,但是今天实在是..做了好几个题都是Time Limit Exceeded…老大尽力了。
其实最近题目做的一直没状态..瓶颈到了。剩下的都是不太好做的。
anyway..回家啦!see u next week!
2015年12月16日17:21:20
很简单的题目: https://leetcode.com/problems/anagrams/
这种错误不是一次两次了。。返回的list的顺序和他的不一致就报错么??
理解不能…上来吐槽同时试试图片显示功能。
2015年12月11日15:29:20
There are a row of n houses, each house can be painted with one of the three colors: red, blue or green. The cost of painting each house with a certain color is different. You have to paint all the houses such that no two adjacent houses have the same color.
The cost of painting each house with a certain color is represented by a n x 3 cost matrix. For example, costs[0][0] is the cost of painting house 0 with color red; costs[1][2] is the cost of painting house 1 with color green, and so on… Find the minimum cost to paint all houses.
Note:
All costs are positive integers.
使用了动态规划..
自顶向下的方法1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25int paint(int n, int cost[][]) {
return help(n, cost, 3);
}
//思想:动态规划。用forbidden这个参数来实现相邻房子不同颜色。
//自顶向下
//如果自底向上的话可以用一个跟cost相同大小的数组,来保存最后一个房子选择这个颜色时的最小花费
private int help(int n, int cost[][], int forbiden) {
// TODO Auto-generated method stub
int min = Integer.MAX_VALUE;
if (n == 1) {
for (int i = 0; i < 3; i++) {
if (i != forbiden) {
min = Math.min(min, cost[0][i]);
}
}
return min;
} else {
for (int i = 0; i < 3; i++) {
if (i != forbiden)
min = Math.min(min, cost[n - 1][i] + help(n - 1, cost, i));
}
return min;
}
}
自底向上: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//n:要粉刷的总共n个房子。数目
//用某种颜色粉刷某个房子的花费。
//复杂度应该是 n*k*k k为颜色个数,n为房子个数
private int helpB2U(int n, int cost[][]) {
// TODO Auto-generated method stub
int[][] minCost = new int[cost.length][cost[0].length];
for (int i = 0; i < n; i++) {//i代表粉刷第I+1个房子
if (i == 0) {
minCost[0][0] = cost[0][0];
minCost[0][1] = cost[0][1];
minCost[0][2] = cost[0][2];
} else {
for (int k = 0; k < 3; k++) {//第K个房子,选择第K种颜色的情况
int min = Integer.MAX_VALUE;
for (int j = 0; j < 3; j++) {
if (j != k)
min = Math.min(min, minCost[i - 1][j]);
}
minCost[i][k] = cost[i][k] + min;
}
}
}
return Math.min(minCost[n - 1][0], Math.min(minCost[n - 1][1], minCost[n - 1][2]));
}
2015年12月11日11:22:36
如果是多层的for语句,那么break只是跳出当前的循环。
如果是for语句内有while语句,break在while语句中,此时也会跳出for循环。
1 | for (int i = 0; i < 30; i++) { |
1 | 第 0次循环 |
2015年12月10日15:51:10
之前做的那个是哪个点到所有的器材最近。现在则是改成,获得某个点到某个健身器材最近的距离。有意思~这个题目其实就是我做的上一个题目的bug啊。
上个题目:用N个二维的点阵来计算每个点到每一个器材的距离加和。
这个题目:用一个二维点阵来储存每一个点到最贱器材的距离。
input是一个二维char数组代表一个gym,@是wall,不能通过,是健身器材,其他都是空格,要求找一个空格到所有的距离最短
@光谷
2015年12月9日17:30:45
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
1 | $ hexo new "My New Post" |
More info: Writing
1 | $ hexo server |
More info: Server
1 | $ hexo generate |
More info: Generating
1 | $ hexo deploy |
More info: Deployment
本地上传…到git
成功了!
照着阮老师的做磕磕绊绊,感觉没什么不对。后来发现是当时邮箱没有验证。怕麻烦就没再管它了。
后来无意间发现了hexo..试试成功~!
好开心~!
2015年12月6日21:37:44