自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

dev_zyx的博客

talk is cheap, show me code!

  • 博客(28)
  • 收藏
  • 关注

原创 剑指 Offer 20. 表示数值的字符串

题目:剑指 Offer 20. 表示数值的字符串题解:// '.' 出现正确情况:只出现一次,且必须出现在 e / E 的前面//// 'e / E' 出现正确情况:只出现一次,且 e / E 出现前,前面必须有数字//// '+ / -' 出现正确情况:只能出现在开头(0位置)或者e / E的后面第一个位置(紧接 e / E 的后面)代码:import java.util.*;// '.' 出现正确情况:只出现一次,且必须出现在 e / E 的前面//

2020-08-31 22:47:21 100

原创 739. 每日温度

题目:739. 每日温度题解:1. 题解一:暴力求解代码:1. 代码一:暴力求解public class code739 { // 解法1: 暴力求解 public static int[] dailyTemperatures(int[] T) { int len = T.length; int res[] = new int[len]; for(int i = 0; i < len; i++) {

2020-08-30 23:31:01 66

原创 647. 回文子串

题目:647. 回文子串题解:5. 最长回文子串1. 题解一:中心扩展算法解释一:解释二:解释三:代码:1. 代码一:中心扩展算法public class code647 { // 解法1: 中心扩展算法 public int num = 0; public int countSubstrings(String s) { for(int i = 0; i < s.length(); i++) {

2020-08-30 18:40:06 75

原创 621. 任务调度器

题目:621. 任务调度器题解:代码:import java.util.Arrays;public class code621 { public static int leastInterval(char[] tasks, int n) { int count[] = new int[26]; // 统计词频 for(int i = 0; i < tasks.length; i++) {

2020-08-30 17:38:42 104

原创 617. 合并二叉树

题目:617. 合并二叉树题解:1. 题解一:递归法2. 题解二:迭代法代码:1. 代码一:递归法import java.util.*;public class code617 { // 解法1: 递归法 /** * 思想:将一棵树t2,合并到另一棵树t1 * 递归公式:合并当前节点 + 合并左子树 + 合并右子树 * 终止条件:t1或t1的节点为空 * */ public static TreeNod

2020-08-30 12:38:45 101

原创 581. 最短无序连续子数组

题目:581. 最短无序连续子数组题解:1. 解释一:2. 解释二:3. 解释三:4.解释四:代码:public class code581 { public static int findUnsortedSubarray(int[] nums) { int len = nums.length; if(len <= 1) { return 0; } int l

2020-08-30 01:44:32 68

原创 560. 和为K的子数组

题目:560. 和为K的子数组题解:1. 题解一:暴力枚举2. 题解二:前缀和 + 哈希表优化代码:1. 代码一:暴力枚举public class code560 { // 方法一: 暴力枚举 public int subarraySum(int[] nums, int k) { int count = 0; for (int i = 0; i < nums.length; i++) {

2020-08-29 20:10:49 50

原创 538. 把二叉搜索树转换为累加树

题目:538. 把二叉搜索树转换为累加树题解:1. 题解一:递归法2. 题解二:迭代法代码:1. 代码一:递归法public class code538 { // 方法1: 递归法 public int sum = 0; public TreeNode convertBST(TreeNode root) { if(root == null) { return null; }

2020-08-28 23:58:24 400

原创 494. 目标和

题目:494. 目标和题解:1. 题解一:DFS枚举2. 题解二:动态规划代码:1. 代码一:DFS枚举public class code494 { // 方法一: DFS枚举 public int count = 0; public int findTargetSumWays(int[] nums, int S) { dfs(nums, S, 0, 0); return count; } publ

2020-08-28 23:39:50 102

原创 461. 汉明距离

题目:461. 汉明距离题解:然后紧接着是:面试题15. 二进制中1的个数代码:public class code461 {// // 方法一: 内置位计数功能// public static int hammingDistance(int x, int y) {// return Integer.bitCount(x ^ y);// }// // 方法二: 使用toBinaryString函数// public static in

2020-08-28 23:16:53 100

原创 448. 找到所有数组中消失的数字

题目:448. 找到所有数组中消失的数字题解:1. 题解一:使用哈希表2. 题解二:原地修改/** * * 找出 1 - n 中没有出现的数字。不能使用额外的空间,两次循环时间复杂度为 2O(n),即为 O(n)。 * * 解题思路:使用数组的下标来标记数字的出现于否,通过一遍遍历即可标记出全部已经出现的数组 * * [4,3,2,7,8,2,3,1] 初始数据 * * [4,3,2,-7,8,2,3,1] 第一个数据 4 出现,将数组的第四个也就是下标 3 的数据修改为负

2020-08-28 23:03:19 132

原创 438. 找到字符串中所有字母异位词

题目:438. 找到字符串中所有字母异位词题解:滑动窗口参考:3. 无重复字符的最长子串滑动窗口,具体思路见代码。代码:滑动窗口import java.util.*;public class code438 { public static List<Integer> findAnagrams(String s, String p) { // 用于返回字母异位词的起始索引 List<Integer> res = new

2020-08-28 22:46:03 107

原创 437. 路径总和 III

题目:437. 路径总和 III题解:1. 题解一:双重递归2. 题解二:前缀和核心代码:// 当前路径上的和currSum += node.val;// currSum-target相当于找路径的起点,起点的sum+target=currSum,当前点到起点的距离就是targetres += prefixSumCount.getOrDefault(currSum - target, 0);// 更新路径上当前节点前缀和的个数prefixSumCount.put(currS

2020-08-27 23:13:05 34

原创 416. 分割等和子集

题目:416. 分割等和子集题解:代码:public class code416 { public static boolean canPartition(int[] nums) { int len = nums.length; if(len == 0) { return false; } int sum = 0; for(int i = 0; i < l

2020-08-27 22:40:43 65

原创 399. 除法求值

题目:399. 除法求值题解:并查集代码:并查集import java.util.*;public class code399 { /** * key : 当前节点 value : 其父节点 */ private Map<String, String> parents = new HashMap<>(); /** * key : 当前节点 value : 父节点/当前节点 */

2020-08-17 22:34:57 74

原创 394. 字符串解码

题目:394. 字符串解码题解:1. 如果遇到 ']',就一直在栈中找到 '[',将之间的字符连接起来,然后将 '['前面的数字作为出现次数,并将之前的 string 连接起来,再次压栈;2. 如果遇到数字、字母、'['就直接压栈;3. 最后将栈里的字符串弹出,并连接起来就ok了;代码:import java.util.*;public class code394 { // 1. 如果遇到 ']',就一直在栈中找到 '[',将之间的字符连接起来,然后将 '['前面的数字作为出

2020-08-16 13:08:26 126

转载 Spring入门第一讲——Spring框架的快速入门

Spring的概述什么是Spring?我们可以从度娘上看到这样有关Spring的介绍:说得更加详细一点,Spring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java开发框架,由Rod Johnson在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其...

2020-08-15 16:33:58 59

原创 347. 前 K 个高频元素

题目:347. 前 K 个高频元素题解:215. 数组中的第K个最大元素什么是Java优先级队列(Priority Queue)?1. 题解一:最小堆2. 题解二:桶排序法(首选)代码:1. 代码一:最小堆import java.util.*;public class code347 { // 解法1:最小堆 public static int[] topKFrequent(int[] nums, int k) { // 使

2020-08-15 01:57:22 75

原创 338. 比特位计数

题目:338. 比特位计数题解:解释一:解释二:解释三:解释四:1. 题解一:动态规划 + 最低有效位2. 题解二:动态规划 + 最后设置位代码:1. 代码一:动态规划 + 最低有效位import java.util.*;public class code338 { // 方法1: 动态规划 + 最低有效位 public static int[] countBits(int num) { int res[] = new int

2020-08-12 22:02:44 72

原创 337. 打家劫舍 III

题目:337. 打家劫舍 III题解:1. 解释一:root[0] = Math.max(rob(root.left)[0], rob(root.left)[1]) + Math.max(rob(root.right)[0], rob(root.right)[1])root[1] = rob(root.left)[0] + rob(root.right)[0] + root.val;2. 解释二:3. 解释三:代码:public class code337 { //

2020-08-11 22:46:38 81

原创 213. 打家劫舍 II

题目:213. 打家劫舍 II题解:198. 打家劫舍代码:public class code213 { public static int rob(int[] nums) { int len = nums.length; if(len == 0) { return 0; } if(len == 1) { return nums[0];

2020-08-10 21:45:46 66

原创 309. 最佳买卖股票时机含冷冻期

题目:309. 最佳买卖股票时机含冷冻期题解:动态规划代码:动态规划public class code309 { public static int maxProfit(int[] prices) { if(prices.length == 0) { return 0; } int n = prices.length; // dp[i][0]: 手上持有股票的最大收益

2020-08-09 13:32:56 76

原创 287. 寻找重复数

题目:287. 寻找重复数题解:142. 环形链表 II1. 解释一:2. 解释二:代码:public class code287 { public static int findDuplicate(int[] nums) { int slow = 0; int fast = 0; slow = nums[slow]; fast = nums[nums[fast]]; // 第一步找到相遇点

2020-08-08 19:18:02 79

原创 283. 移动零

题目:283. 移动零题解:1. 题解一:两次遍历解题思路:遍历数组,不为0的元素移到数组前方,用index下标记录。遍历结束,对index值后的元素统一设为02. 题解二:一次遍历解题思路:直接在遍历的时候,进行元素覆盖即可,并把原来的值设为0代码:1. 代码一:两次遍历public class code283 { // 方法1:两次遍历 public static void moveZeroes(int[] nums) { int inde

2020-08-08 00:30:59 73

原创 279. 完全平方数

题目:279. 完全平方数题解:代码:import java.util.*;public class code279 { // 判断是否是[完全]平方数 public static boolean isSquare(int n) { int sqrt = (int) Math.sqrt(n); return sqrt * sqrt == n; } public static int numS

2020-08-07 00:30:55 87

原创 238. 除自身以外数组的乘积

题目:238. 除自身以外数组的乘积剑指 Offer 66. 构建乘积数组题解:剑指 Offer 66. 构建乘积数组代码:public class code238 { // // 方法1:左右数组 // public static int[] productExceptSelf(int[] nums) { // if(nums == null || nums.length == 0) // { // return

2020-08-06 00:28:58 64

原创 234. 回文链表

题目:234. 回文链表题解:1. 题解一:快指针走到末尾,慢指针刚好到中间,其中慢指针将前半部分反转,然后比较反转后的前半部分与原来的后半部分是否相同。2. 题解二:其一,find mid node 使用快慢指针找到链表中点。 其二,reverse 逆序后半部分。 其三,check 从头、中点,开始比较是否相同。偶数节点情况:奇数节点情况:代码:1. 代码一:public class code234 { public static boolean isPali

2020-08-05 00:30:12 63

原创 221. 最大正方形

题目:221. 最大正方形题解:代码:public class code221 { public static int maximalSquare(char[][] matrix) { // base condition if(matrix == null || matrix.length == 0 || matrix[0].length == 0) { return 0; }

2020-08-03 23:56:06 67

空空如也

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除