摘要:
这种求什么最大钱数的问题,先想到动态规划或者贪心算法。 动态规划的思路是,先判断只有一间房子的时候,那么就偷这家。有两间房,偷钱多的。 有k间房,如果偷第k间房,则k-1不能偷,最大钱数为:前k-2间房的最大钱数+k。 如果不偷第k间房,最大钱数为:前k-1间房的最大钱数。 最后处理一下数组为空的情 阅读全文
摘要:
一开始写了一堆if else。总觉得题目怪怪的。 像这种排好序的数组中查找元素,应该想到折半查找 class Solution { public int missingNumber(int[] nums) { int i = 0, j = nums.length - 1; while(i <= j) 阅读全文
摘要:
最先想到的两重for循环,超时,输入的数组很大,一整个页面的数,人直接傻了 接下来运用余数的思想。一个数除以60的余数为0~59,建立一个数组remainder保存余数出现的次数。 先不考虑余数为0和30的情况。 剩下的余数相加为60则说明可以整除。建立头尾两个指针,1与59,2与58...,如果1 阅读全文
摘要:
数据准备: 放在一个txt文件中 hadoop hadoop mapreduce yyy yyy zzz hello hello hello 环境准备: 首先要下载好hadoop的windows版本。在D:\hadoop 2.7.2\share\hadoop\mapreduce目录下可以看到官方示例 阅读全文
摘要:
思路: String.valueOf(int i) : 将 int 变量 i 转换成字符串 String.contains()用于判断字符串是否包含子字符串 阅读全文
摘要:
思路: 待补充 阅读全文
摘要:
思路: 保存掉落的苹果总数,和树是第几棵即可 阅读全文
摘要:
思路: 数据结构中,栈可以解决运算的问题。利用压栈和弹栈操作实现(这里用队列模拟)。具体的: 遇到乘除号,弹出栈顶元素,将计算结果压入栈中。遇到加减号,将后面的数一起压入栈中。 注意: substring方法前闭后开,substring(i, i + 2)取的是i和i+1。 在ASCII码里'0'对 阅读全文
摘要:
思路: 中位数就是排序后中间的那个数。如果有偶数个数,就是中间两个数的平均值。 注意,这个平均值可能是整数,可能是小数,如果都是一样的处理,如果输出整数是3.0,而不是3,就有问题。所以需要分开处理。 阅读全文
摘要:
思路: 红绿灯每种灯亮划分区间,在[0,r]区间内红灯亮,在(r,g+r]区间内绿灯亮,在(r+g,r+g+y]区间内黄灯亮,在划分好区间后只需要判断当小明到达红绿灯时是哪个灯在亮,就可以判断出通过红绿灯的时间 余数表示在一个新的周期中,灯已经走过的时间。 阅读全文