剑指Offer
洛豳枭薰
最好的年华为最初的梦想尽最大的努力
展开
-
剑指Offer-二叉树中和为某一路径(非递归、递归形式前序遍历)
import java.util.ArrayList;import java.util.Stack;import Sword2Offer.TreeNode;class TreeRuleSum { /* * path用来存储遍历路径 pathList用来存储满足条件的路径 */ ArrayList<Integer> path = new ArrayList<...原创 2019-04-03 10:52:39 · 409 阅读 · 0 评论 -
字符串排列组合(去重)
字符串排列组合一、 字符串排列要求字符串:abc产生abc |acb|bac|bca|cab|cba思路:1、固定一个位置第一个位置,数组中该位置之后的元素与该位置元素交换,2、在1的基础之上,固定第二个位置,数组数组中该位置之后的元素与该位置元素交换3、递归退出条件:当位置指针等于当前数组的长度,返回当前字符串排序4、递归:(1)交换元素(2)递归调用下一位置(3)将数...原创 2019-05-09 16:49:46 · 2193 阅读 · 0 评论 -
数字排列组合
思路参考上一遍博客:https://blog.csdn.net/qq_32679835/article/details/90041784一、数字排列1、数字排列每一次不能将传入的数组直接传入添加到Arraylist中,如果直接添加,在每一次递归添加之后只是通过浅拷贝传入到ArrayList中,就会导致ArrayList中的元素都相同,需要原数组拷贝后传入2、去重手段不能选择HashSe...原创 2019-05-09 19:32:31 · 1625 阅读 · 0 评论 -
从1到n整数中1出现的次数
给出一个具体数,计算得到从1开始到该数中出现1的次数常规实现1、遍历从1到该数字,计算每一个数字中1出现的次数2、通过对n = n / 10,如果 每一次n%10等于1,则表明包含1,计数器加一,跳出条件为n=03、时间复杂度:O(logn)/** * 遍历数字得到结果,时间复杂度O(nlogn) * * @param n * @return */ public ...原创 2019-05-16 20:30:28 · 377 阅读 · 0 评论 -
摇骰子所有可能的值(java)
解题思路:第一步,确定问题解的表达式。可将f(n, s) 表示n个骰子点数的和为s的排列情况总数。第二步,确定状态转移方程。n个骰子点数和为s的种类数只与n-1个骰子的和有关。因为一个骰子有六个点数,那么第n个骰子可能出现1到6的点数。所以第n个骰子点数为1的话,f(n,s)=f(n-1,s-1),当第n个骰子点数为2的话,f(n,s)=f(n-1,s-2),…,依次类推。在n-1个骰子的基础...原创 2019-05-31 10:17:15 · 694 阅读 · 0 评论 -
01背包问题
文章目录一、递归解决背包问题二、动态规划一、递归解决背包问题暴力递归,穷举出所有的可能性,在检索完所有物品,即index=nums.length时候决定是否更新最大值1、当物品体积小于等于当前背包容量,选择放或者不放2、当物品体积大于,只能选择不放该物品//递归解决背包问题 public int getMaxValue(int[] weight, int[] value, int ...原创 2019-07-23 15:59:20 · 129 阅读 · 0 评论