![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
力扣
夜雨@声烦
逆风而行
展开
-
力扣93. 复原IP地址 (java回溯+减枝)
力扣93:复原IP地址回溯+减枝注解清晰~~class Solution { List<String> list = new ArrayList<String>(); public List<String> restoreIpAddresses(String s) { //x.x.x.x ip地址最少为4位,最多为12...原创 2020-04-07 19:20:26 · 367 阅读 · 0 评论 -
力扣69. x 的平方根(java二分法)
力扣69. x 的平方根(java二分法)思路: 只要是 >=4 的数,平方根肯定小于等于它的一半,根据这个思路,我们可以选择二分法。public int mySqrt(int x) { //排除影响条件 if(x == 0){ return 0; } if(x < 4){ ...原创 2020-04-04 23:32:36 · 398 阅读 · 0 评论 -
力扣 55. 跳跃游戏 java通俗易懂
力扣 55:跳跃游戏题目说非负整形数组,那么显而易见每个数都大于等于 0,那数组只会存在两种情况:1.包含数字 “0” 的数组。2.不包含数字 “0”的数组。对于情景1,我们需要判断它能不能到达数组末尾,而对于情景2我们不需要判断,因为它肯定能到达数组最末尾,哪怕每次只前进1。所以我们需要处理情景1。而对于含0的数组,我们只需要 判断0的位置前面的数组是否能够越过0这个位置 即可。...原创 2020-03-30 21:38:55 · 278 阅读 · 0 评论 -
力扣120. 三角形最小路径和(java动态规划)
三角形最小路径和这道题第一眼看可能就会想到使用动态规划来解答,定义一个dp[n][n]的数组,然后填写数组,若产生考虑两个值的情况——如图中的 5可以有两条路径到达,则选取较小值,代码难度不高。但仔细一看,发现最好只是用 O[n] 的额外空间,其实,我们只需定义一个一维数组就能解决问题。如图,我们只需定义一个 一维数组dp[n] 利用前一行,来更新当前行数的距离:class Sol...原创 2020-03-18 00:56:32 · 349 阅读 · 0 评论 -
力扣 216. 组合总和 III java实现
组合总和 III这道题看了之后第一反应是使用 回溯+减枝,其实遇到这种类型的题,初看可能感觉无从下手,但是只要耐心画一下它的递归树就会很清晰:由于题目要求list中不允许出现重复数字,所以我们需要传递一个下标,防止元素重复选取,代码如下:class Solution { List<List<Integer>> list = new ArrayList<...原创 2020-03-12 20:10:27 · 316 阅读 · 0 评论 -
力扣 131:分割回文串 Java实现
分割回文串一看到这道题,我的第一反应是递归,因为这道题每下一步都可以分为若干个子问题,如图:根据这棵递归树,写出如下代码:class Solution { List<List<String>> list = new ArrayList<List<String>>(); public List<List<Strin...原创 2020-03-08 19:27:04 · 265 阅读 · 0 评论 -
力扣: 77 组合 java实现
题:本题使用回溯法class Solution { List<List<Integer>> list = new ArrayList<List<Integer>>(); public List<List<Integer>> combine(int n, int k) { if( n =...原创 2020-02-26 19:53:36 · 264 阅读 · 0 评论