欢迎关注个人公众号:爱喝可可牛奶 LeetCode算法训练 93.复原IP地址 78.子集 90.子集II LeetCode 93. 复原 IP 地址 分析 字符串全部由数字组成,ipv4每一段数字不能有前导0,且大小∈[0,255] 等价于将字符串进行分割,并判断分割后的数是否满足条件 插入一个点进行切割.判断是否满足条件.再插入.再判断,直到插入3个点,判断剩下的一段是否满足条件 代码 class Solution { List<String> res = new ArrayList<…
977.有序数组的平方 :https://leetcode.cn/problems/squares-of-a-sorted-array/ 心得:周末再写... public class Solution { public static void main(String[] args) { Solution solution = new Solution(); int[] ints = solution.sortedSquares(new int[]{-4, -1, 0, 3, 10}); for…
93. 复原IP地址 给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式. 示例: 输入: "25525511135" 输出: ["255.255.11.135", "255.255.111.35"] PS: 跪了,得LeetCode者得天下,上次我学的位运算符,这次学的ip地址 class Solution { private List<String> res = new ArrayList<>(); p…
前言   考研结束半个月了,自己也简单休整了一波,估了一下分,应该能进复试,但还是感觉不够托底.不管怎样,要把代码能力和八股捡起来了,正好看到卡哥有这个算法训练营,遂果断参加,为机试和日后求职打下一个基础.   我之前断断续续地刷过一些LeetCode,但是不成体系,数量也少得可怜,才区区50+,在寻找暑期实习的过程中吃够了苦头,希望通过这次训练营得到一个长足的提升,养成自己写博客的习惯,慢慢提升自己的博客水准. 之前的LeetCode刷题分析 LeetCode 704 二分查找   二分是一个…
IP地址,分成四段,每段是0-255,按照每段的长度分别为1,2,3下一段长度分别1,2,3再下一段......进行递归遍历,能满足条件的假如res中.比较难想到的就是假如有一段是三位的010是不符合要求的.这点一开始没想到,改成首尾不是0的才执行结果又漏掉了单个0的IP地址,比如0.0.0.0..除了这两点之外剩下的代码还算好想. #include<bits/stdc++.h> using namespace std; class Solution { private: void getIP…
题目 给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式. 有效的 IP 地址正好由四个整数(每个整数位于 0 到 255 之间组成),整数之间用 '.' 分隔. 示例: 输入: "25525511135"输出: ["255.255.11.135", "255.255.111.35"] 思路 深度优先遍历的思想 实现 class Solution: def restoreIpAddresses(self, s: str) ->…
基础知识 哈希 常见的结构(不要忘记数组) 数组 set (集合) map(映射) 注意 哈希冲突 哈希函数 LeetCode 242 分析1.0 HashMap<Character, Integer> 记录字符元素及其个数,再以字符序列对key进行排序,比较两个Map是否一致或者是遍历Map1的时候,在map2中对cur指针key查询对应个数 有一个用例未通过 原因: 引用类型比较值使用equals().方法map1.get(c).equals(map2.get(c))  class Sol…
基础知识 数据结构初始化 // 链表节点定义 public class ListNode { // 结点的值 int val; // 下一个结点 ListNode next; // 节点的构造函数(无参) public ListNode() { } // 节点的构造函数(有一个参数) public ListNode(int val) { this.val = val; } // 节点的构造函数(有两个参数) public ListNode(int val, ListNode next) { th…
leetcode 977   分析1.0:   要求对平方后的int排序,而给定数组中元素可正可负,一开始有思维误区,觉得最小值一定在0左右徘徊,但数据可能并不包含0:遂继续思考,发现元素分布有三种情况,递增.递减以及类似二元凹函数,而题目要求O(n)的时间复杂度,不可能采用十大排序算法,于是接下来打算寻找最小值及其索引位置向两侧寻找次小值并存放进新数组,遍历元素时逐个使用Math.abs()函数确定大小,一开始采用指针移动的思想比较,index,index+1,index+2得到最小值及索引,…
LeetCode 235. 二叉搜索树的最近公共祖先 分析1.0  二叉搜索树根节点元素值大小介于子树之间,所以只要找到第一个介于他俩之间的节点就行 class Solution { public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { if(root.val >= p.val && root.val <= q.val){ return root; }else if(root.…