摘要:
1.这个题拿到之后没有什么思路,此时就应该考虑暴力法。然而每次不知道要拆成几份,没办法用循环,所以想到用递归。 如图所示进行递归,显然有很多重复的计算,所以用自底向上的动态规划。 2.还有一个问题就是memo[i]是如果拆开i的话的最大值,有些数字比如5=2+3,2*3=6>5,这种数字memo[i 阅读全文
阅读排行榜
实现sqrt函数
2021-03-02 20:56 by legend聪, 196 阅读, 收藏,
摘要:
实现这个函数主要用二分法,如果要求四舍五入就设计一个误差。比如0.05,然后不断迭代,最后结果用round输出。如果是忽略小数的话那么可以找右边界,小于mid*mid<x的右边界class Solution { static double e=0.05; public static int mySq 阅读全文
PATA1096 Consecutive Factors
2019-03-25 23:20 by legend聪, 196 阅读, 收藏,
摘要:
这道题一开始比较难想,因为感觉情况有很多无法比较存储。看了答案才知道用的是很自然的枚举,从2开始进行枚举,判断长度,选出最长的输出。前几个数字比较容易出错2,4,8,7,14这些,整体难度不算太大。 阅读全文
[pat]1068 Find More Coins
2018-09-05 21:18 by legend聪, 193 阅读, 收藏,
摘要:
满背包问题,把体积和价值看成相等的。用滚动数组优化,然后额外开辟一个choice数组来记录每次的选择,然后回溯打印。因为要按字典序,先把价值进行排序。假如选最小的商品能装满m的话,那就把判断条件改成大于等于,然后最后来 选择最小的那个。 阅读全文
leetcode34. Find First and Last Position of Element in Sorted Array
2018-08-14 16:32 by legend聪, 193 阅读, 收藏,
摘要:
二分查找不只是查找,还可以根据需求添加条件进行查找,比如这个题,左端点的条件就是边界点或者小于target,右端点的条件就是!=size()或者大于。根据这个找到查找的条件 阅读全文