337.打家劫舍Ⅲ 发表于 2020-08-11 | 分类于 算法 字数统计: 671 | 阅读时长 ≈ 2 题目描述在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫,房 ... 阅读全文 »
213.打家劫舍Ⅱ 发表于 2020-08-11 | 分类于 算法 字数统计: 296 | 阅读时长 ≈ 1 题目描述 题解动态规划这道题与上一道打家劫舍题的唯一不同点在于首尾两个房子不能同时考虑, 也就是如果偷窃了第一个房子就不能偷窃最后一个, 反之亦然. 所以可以将该数组分成两个子数组. 一个是nums[0: len-1], 一个是nums[1: len] 第一道打家劫舍题的思路为: 状态定义 使用 ... 阅读全文 »
198.打家劫舍 发表于 2020-08-11 | 分类于 算法 字数统计: 164 | 阅读时长 ≈ 1 题目描述 题解动态规划状态定义 使用一个一维数组dp[i]来表示第i天所能获得的最大金额. 状态转移方程 对每一天的选择进行分析, 要么抢要么不抢两种选择 如果抢了: dp[i] = nums[i] + dp[i-2] 如果不抢: dp[i] = dp[i-1] 初始化 dp[0] = 0, 表示第 ... 阅读全文 »
188.买卖股票的最佳时机Ⅳ 发表于 2020-08-10 | 分类于 算法 字数统计: 993 | 阅读时长 ≈ 4 题目描述 题解动态规划因为有交易次数k的限制, 首先需要判断的一点是,一次交易至少需要 2 天,一天买,一天卖。因此如果 k 很大,大到大于等于 len / 2,就相当于股票系列的第 2 题,使用贪心算法去做就可以了。这是一个特判。 这道题用动态规划完成,比之前的股票问题多一个限制,则有后效性,因此 ... 阅读全文 »
122.买卖股票的最佳时机Ⅱ 发表于 2020-08-10 | 分类于 算法 字数统计: 449 | 阅读时长 ≈ 2 题目描述 题目描述贪心算法贪心算法的宗旨就是对于每一步的计算, 都只求当前局部的最优值, 然后所有的局部最优最终可以得到全局的最优. 在这道题中, 对于每一天的股票价格进行分析, 如果这一天的股票涨了, 那就记录下来, 如果下跌了那就不计入总的收益 所以每一天的收益只与前一天有关, 我们要做的就是把 ... 阅读全文 »
SpringBoot 发表于 2020-08-08 | 分类于 微服务 字数统计: 5.2k | 阅读时长 ≈ 24 第一个SpringBoot程序官方提供了一个快速生成的网站, IDEA集成了这个网站 可以在官网直接下载后, 导入IDEA开发 直接使用IDEA创建一个SpringBoot项目(一般开发直接在IDEA中创建) 程序的结构为: 点击运行之后的输出为: 然后从浏览器打开8080端口: 下面开始 ... 阅读全文 »
452.用最少数量的箭引爆气球 发表于 2020-08-08 | 分类于 算法 字数统计: 146 | 阅读时长 ≈ 1 题目描述 题解贪心算法与435题无重叠区间一样, 都是先根据每个区间的结束端进行排序, 一共有多少无重叠区域, 那就需要多少支箭. 不过不同点在于, 这道题目中说只要接触到就能引爆, 所以要修改一下边界条件 123456789101112131415161718public int findMin ... 阅读全文 »
435.无重叠区间 发表于 2020-08-08 | 分类于 算法 字数统计: 316 | 阅读时长 ≈ 1 题目描述 题解贪心算法正确的思路其实很简单,可以分为以下三步: 从区间集合 intvs 中选择一个区间 x,这个 x 是在当前所有区间中结束最早的(end 最小)。 把所有与 x 区间相交的区间从区间集合 intvs 中删除。 重复步骤 1 和 2,直到 intvs 为空为止。之前选出的那些 x ... 阅读全文 »
651.四键键盘 发表于 2020-08-08 | 分类于 算法 字数统计: 474 | 阅读时长 ≈ 2 题目描述 题解动态规划这个算法基于这样一个事实,最优按键序列一定只有两种情况: 要么一直按 A:A,A,…A(当 N 比较小时)。 要么是这么一个形式:A,A,…C-A,C-C,C-V,C-V,…C-V(当 N 比较大时)。 因为字符数量少(N 比较小)时,C-A C-C C-V 这一套操作的代价相 ... 阅读全文 »
877.石子游戏 发表于 2020-08-08 | 分类于 算法 字数统计: 1.4k | 阅读时长 ≈ 5 题目描述亚历克斯和李用几堆石子在做游戏。偶数堆石子排成一行,每堆都有正整数颗石子 piles[i] 。 游戏以谁手中的石子最多来决出胜负。石子的总数是奇数,所以没有平局。 亚历克斯和李轮流进行,亚历克斯先开始。 每回合,玩家从行的开始或结束处取走整堆石头。 这种情况一直持续到没有更多的石子堆为止,此 ... 阅读全文 »