第十二章打家劫舍题目理解步骤dp数组递推公式初始化遍历顺序代码打家劫舍II题目理解步骤递推公式初始化遍历顺序代码打家劫舍力扣链接你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警给定一个代表每个房屋存放金额的非负整数数组,计算你不触动警报装置的情况下,一夜之内能够偷窃到的最高金额示例1:输入:[1,2,3,1]输出:4解释:偷窃1号房屋(金额=1),然后偷窃3号房屋(金额=3)偷窃到的最高金额=1+3=4示例2:输入:[2,7,9,3,1]输出:12解释:偷窃1号
第十章最佳买卖股票时机含冷冻期题目理解步骤dp数组递推公式初始化遍历方向代码买卖股票的最佳时机含手续费题目理解步骤dp数组递推公式初始化遍历方向代码最佳买卖股票时机含冷冻期力扣链接给定一个整数数组prices,其中第prices[i]表示第i天的股票价格。设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):卖出股票后,你无法在第二天买入股票(即冷冻期为1天)注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)示例1:输入:prices=[1,2,3,0,2]输出:3解释:对应的交易状态为:[买入,卖出,冷冻期,买入,卖出]示例2:输
第九章买卖股票的最佳时机III题目理解步骤dp数组递推公式初始化遍历方向代码买卖股票的最佳时机IV题目理解步骤dp数组递推公式初始化遍历方向代码买卖股票的最佳时机III力扣链接给定一个数组,它的第i个元素是一支给定的股票在第i天的价格设计一个算法来计算你所能获取的最大利润。你最多可以完成两笔交易注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)示例1:输入:prices=[3,3,5,0,0,3,1,4]输出:6解释:在第4天(股票价格=0)的时候买入,在第6天(股票价格=3)的时候卖出,这笔交易所能获得利润=3-0=3。随后,在第7天(股票价格=1)的时候买入,在第8天(股票
第八章买卖股票的最佳时机题目理解步骤dp含义递推公式初始化遍历方向代码买卖股票的最佳时机II题目理解步骤dp含义递推公式初始化遍历方向代码买卖股票的最佳时机力扣链接给定一个数组prices,它的第i个元素prices[i]表示一支给定股票第i天的价格你只能选择某一天买入这只股票,并选择在未来的某一个不同的日子卖出该股票。设计一个算法来计算你所能获取的最大利润返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回0示例1:输入:[7,1,5,3,6,4]输出:5解释:在第2天(股票价格=1)的时候买入,在第5天(股票价格=6)的时候卖出,最大利润=6-1=5。注意利润不能是7-1=6
第七章最长重复子数组题目理解步骤dp含义递推公式初始化为啥dp数组如此奇怪遍历顺序代码最长公共子序列题目理解步骤dp含义递推公式初始化遍历顺序代码总结最长重复子数组力扣链接给两个整数数组nums1和nums2,返回两个数组中公共的、长度最长的子数组的长度。示例1:输入:nums1=[1,2,3,2,1],nums2=[3,2,1,4,7]输出:3解释:长度最长的公共子数组是[3,2,1]。示例2:输入:nums1=[0,0,0,0,0],nums2=[0,0,0,0,0]输出:5提示:10题目理解暴力解法就是用两个for循环遍历两个数组,然后在套用一个while循环或者for循环从各个起始位置
第四章全排列题目理解步骤树形图递归函数递归结束条件单层逻辑代码全排列II题目理解步骤递归函数递归结束条件单层逻辑代码全排列力扣链接给定一个不含重复数字的数组nums,返回其所有可能的全排列。你可以按任意顺序返回答案。示例1:输入:nums=[1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例2:输入:nums=[0,1]输出:[[0,1],[1,0]]示例3:输入:nums=[1]输出:[[1]]提示:1-10nums中的所有整数互不相同题目理解很明显这是用回溯算法来写的相比较之前写的组合:startindex——下一层递归
第二章目标和题意分析步骤dp的含义递推公式dp数组初始化遍历顺序代码目标和力扣链接给你一个整数数组nums和一个整数target。向数组中的每个整数前添加‘+’或‘-’,然后串联起所有整数,可以构造一个表达式:例如,nums=[2,1],可以在2之前添加‘+’,在1之前添加‘-’,然后串联起来得到表达式“+2-1”。返回可以通过上述方法构造的、运算结果等于target的不同表达式的数目。示例1:输入:nums=[1,1,1,1,1],target=3输出:5解释:一共有5种方法让最终目标和为3。-1+1+1+1+1=3+1-1+1+1+1=3+1+1-1+1+1=3+1+1+1-1+1=3+1
第六章最长递增子序列题目理解步骤dp含义递推公式初始化遍历顺序代码最长连续递增序列题目理解步骤dp含义递推公式初始化遍历顺序代码最长递增子序列力扣链接给你一个整数数组nums,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7]是数组[0,3,1,6,2,2,7]的子序列。示例1:输入:nums=[10,9,2,5,3,7,101,18]输出:4解释:最长递增子序列是[2,3,7,101],因此长度为4。示例2:输入:nums=[0,1,0,3,2,3]输出:4示例3:输入:nums=[7,7,7,7,7,
“滚滚长江东逝水,浪花淘尽英雄”。近来读《三国演义》,忽然想看看到底哪位英雄在书中提到的最多,于是就想用分词算法实现一下。网上也确实有相关的案例,作为参考,自己又重写并优化了一遍。思路下载《三国演义》txt文档使用jieba分词算法对文档进行分词处理将分词结果踢除停用词、标点符合、非人名等词频统计、并排序可视化展示问题按照上面的思路进行简单实施时,查看结果会发现几个问题名字三国人物有名、字、号等,还有其他的一些别称,如“相父”、“曹阿瞒“、刘皇叔”,要想办法统一成一个人词性比如“曰”、“大胜”等非人名的词不是我们需要统计的分词一些如“孔明曰”、“玄德问”、“操大怒”之类的词没有被分割开干扰词分
第三章组合分析步骤递归函数的返回值和参数递归结束的条件单层逻辑组合总和III组合力扣链接给定两个整数n和k,返回范围[1,n]中所有可能的k个数的组合。你可以按任何顺序返回答案。示例1:输入:n=4,k=2输出:[[2,4],[3,4],[2,3],[1,2],[1,3],[1,4],]示例2:输入:n=1,k=1输出:[[1]]提示:11分析暴力解法当然是用for循环:n=4,k=2时:intn=4;for(inti=1;in;i++){for(intj=i+1;jn;j++){couti""jendl;}}n=100,k=3时:intn=100;for(inti=1;in;i++){for