01 2018 档案

摘要:题目如下: 解题思路:对于这个题目,我也没想到特别好的方法。不过既然题目约定了是一个2*3的board,那么基本上就不用考虑性能问题了,所以可以简单粗暴的用穷举法。怎么穷举呢,最简单的是倒推,因为如果题目有解的话最终的结果一定是 [[1,2,3],[4,5,0]],我们可以用这个状态作为起点,计算出 阅读全文
posted @ 2018-01-30 21:01 seyjs 阅读(328) 评论(0) 推荐(0)
摘要:题目如下: 解题思路:算法上没有什么技术难度,无非就是要考虑各种情况。我的方法是用两个栈分别保存运算符号和非运算符号(包括数字和括号)。遇到右括号后,往前找左括号,遇到乘号或者除号,直接计算出结果。 代码如下:(写的很乱,也没心情优化了) 阅读全文
posted @ 2018-01-25 14:30 seyjs 阅读(465) 评论(0) 推荐(0)
摘要:题目如下: 解题思路:刚看到这个题目,我觉得有点无从下手。但是仔细考虑之后,我觉得这个题目满足一个经典的算法场景——把一个数组分成两个子数组,使得两个子数组和最接近。例如,输入的字符串S="aabc",可以被实例化成字段d = {a:2,b:1,c:1},那么三个字符出现的次数就构成了[2,1,1] 阅读全文
posted @ 2018-01-24 21:08 seyjs 阅读(216) 评论(0) 推荐(0)
摘要:题目如下: 解题思路如下: 首先把二维数组构造出来,然后把mines所在的位置标记为0,非mines标记为1,这是基本。接下来遍历所有的非mines,计算其上下左右四个方向最多相邻值为1的个数,然后取四个值的最小值,即为该位置的Plus Sign,最后求出所有Plus Sign的最大值即可。这里有一 阅读全文
posted @ 2018-01-17 13:25 seyjs 阅读(177) 评论(0) 推荐(0)
摘要:题目: 解题思路: 看完题目后,我脑子里首先出现的是动态规划算法解决这一类问题。但是仔细想想,又觉得不太对,首先target的范围很大,没有这个大的数组可以保存中间结果。之后脑子里闪过了无数的方法,但都被一一否决了。万般无奈之下,想起了“找规律”的老办法。题目要求是从0开始,第n次操作可以到达tar 阅读全文
posted @ 2018-01-04 15:10 seyjs 阅读(326) 评论(0) 推荐(0)