自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

寒泉

一只野生程序猿

  • 博客(33)
  • 资源 (1)
  • 论坛 (1)
  • 收藏
  • 关注

原创 leetcode 598. Range Addition II | 598. 范围求和 II

题目https://leetcode-cn.com/problems/range-addition-ii/题解经过观察发现,最大元素会是两个操作对应矩阵的交集区域。class Solution { public int maxCount(int m, int n, int[][] ops) { if (ops.length == 0) return m * n; int x = ops[0][0]; int y = ops[0][1];

2021-05-31 21:11:53 912

原创 leetcode 594. Longest Harmonious Subsequence | 594. 最长和谐子序列

题目https://leetcode-cn.com/problems/longest-harmonious-subsequence/题解我的解法测试用例[1][1,2][2,1][3,1][3,1,1][3,5,5][1,3,5,7][2,2][1,2,1,2,1,2,1,2,1,2][3,3,3,2,2,2,1,1,1][3,3,2][1,3,2,2,5,2,3,7]import java.util.Arrays;class Solution { pu

2021-05-31 10:48:27 900

原创 leetcode 589. N 叉树的前序遍历,590. N 叉树的后序遍历(Java版)

题目https://leetcode-cn.com/problems/n-ary-tree-preorder-traversal/题解import java.util.ArrayList;import java.util.List;// Definition for a Node.class Node { public int val; public List<Node> children; public Node() { } publ

2021-05-30 23:09:38 913

原创 leetcode 575. 分糖果(Java版)

题目https://leetcode-cn.com/problems/distribute-candies/题解class Solution { public int distributeCandies(int[] candyType) { Set<Integer> set = new HashSet<>(); for (int i : candyType) { set.add(i); }

2021-05-29 14:27:10 924

原创 leetcode 572. 另一个树的子树(Java版)

题目https://leetcode-cn.com/problems/subtree-of-another-tree/题解方法一:深度优先搜索暴力匹配/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val)

2021-05-28 17:13:25 1217

原创 leetcode 566. 重塑矩阵(Java版,坐标转换)

题目https://leetcode-cn.com/problems/reshape-the-matrix/题解草稿是将 34 矩阵转化为 43 矩阵的例子:做完之后发现思路与官方题解一致,直接贴官方题解吧。class Solution { public int[][] matrixReshape(int[][] mat, int r, int c) { int row = mat.length; int column = mat[0].length;

2021-05-27 12:34:06 1203

原创 leetcode 563. 二叉树的坡度(Java版)

题目https://leetcode-cn.com/problems/binary-tree-tilt/题解从问题的描述中,可以清楚地了解到,我们需要在给定树的每个结点处找到其坡度,并将所有的坡度相加以获得最终结果。要找出任意结点的坡度,我们需要求出该结点的左子树上所有结点和以及其右子树上全部结点和的差值。因此,为了找出解决方案,我们使用递归函数 process,在任何结点调用该函数,都会返回当前结点下面(包括其自身)的结点和。借助于任何结点的左右子结点的这一和值,我们可以直接获得该结点所对应的坡

2021-05-26 14:54:43 1215

原创 leetcode 561. 数组拆分 I(Java版)

题目https://leetcode-cn.com/problems/array-partition-i/题解思路:先排序,然后让每相邻的两个值凑成一对。原理是,要让每一个小值a带上未配对的最小的值,并和它“同归于尽”。import java.util.Arrays;class Solution { public int arrayPairSum(int[] nums) { Arrays.sort(nums); int sum = 0;

2021-05-25 12:16:17 1219 2

原创 leetcode 559. N 叉树的最大深度(Java版,N叉树的深度优先搜索)

题目https://leetcode-cn.com/problems/maximum-depth-of-n-ary-tree/题解思路是 N 叉树的遍历(深度优先搜索)/*// Definition for a Node.class Node { public int val; public List<Node> children; public Node() {} public Node(int _val) { val = _v

2021-05-24 11:17:35 1180

原创 leetcode 557. 反转字符串中的单词 III(Java版)

题目https://leetcode-cn.com/problems/reverse-words-in-a-string-iii/题解class Solution { public String reverseWords(String s) { char[] arr = s.toCharArray(); int r = 0; for (int i = 0; i < arr.length; i++) { if (ar

2021-05-23 11:29:54 1212

原创 leetcode 551. 学生出勤记录 I(Java版)

题目https://leetcode-cn.com/problems/student-attendance-record-i/题解public class Solution { public boolean checkRecord(String s) { char[] chars = s.toCharArray(); int countA = 0; int continuousL = 0; boolean preIsL = fa

2021-05-22 11:23:57 1201

原创 leetcode 543. 二叉树的直径(Java版)

题目https://leetcode-cn.com/problems/diameter-of-binary-tree/题解 1:暴力法暴力解法:遍历这棵树,当以每个节点为根时,计算 距离,取最大值作为最终结果。其中,距离 = 左 深度 + 右 深度。其中,深度的计算用 getDepth() 来定义。/* Definition for a binary tree node. */class TreeNode { int val; TreeNode left;

2021-05-21 13:22:21 1185

原创 leetcode 541. 反转字符串 II(Java版)

题目https://leetcode-cn.com/problems/reverse-string-ii/题解题目不难,但描述的比较晦涩,简单来说就是:隔 k 个,swap k 个;隔 k 个,swap k 个;…如果 swap 的时候不足 k 个,则有多少 swap 多少。/** * 给定一个字符串 s 和一个整数 k,你需要对从字符串开头算起的每隔 2k 个字符的前 k 个字符进行反转。 * 如果剩余字符少于 k 个,则将剩余字符全部反转。 * 如果剩余字符小于 2k 但大于

2021-05-19 21:21:25 1739

原创 oh-my-zsh 国内网络快速安装方法 | How to install oh-my-zsh in China

1、安装 zshubuntu 下只需执行即可sudo apt-get install zsh2、下载安装 oh-my-zsh 主题框架这个按网上教程给的下载执行方法通通下载不下来,所以选用国内的仓库,下载下来后执行安装脚本。首先,把项目 clone 到本地。git clone https://gitee.com/mirrors/oh-my-zsh.git然后,进入到 tools 目录下,执行 sh install.sh,安装完成。...

2021-05-19 18:27:30 1735

原创 How to Fix “Username is not in the sudoers file. This incident will be reported” in Ubuntu

How to Fix “Username is not in the sudoers file. This incident will be reported” in Ubuntu?| 如何解决“用户名不在 sudoers文件中,此事将被报告”?sudo命令可以让你以root身份执行命令,来完成一些我们这个帐号完成不了的任务。其实并非所有用户都能够执行sudo,因为有权限的用户都在/etc/sudoers中。我们可以通过带有 sudo 权限的用户,打开 /etc/sudoers,将希望添加的用户添加至

2021-05-19 17:10:26 1765

原创 leetcode 530. 二叉搜索树的最小绝对差(Java版)

题目https://leetcode-cn.com/problems/minimum-absolute-difference-in-bst/题解中序遍历法。本题要求二叉搜索树任意两节点差的绝对值的最小值,而我们知道二叉搜索树有个性质为二叉搜索树中序遍历得到的值序列是递增有序的。过程中定义了 Record 实例,参考:leetcode 235. 二叉搜索树的最近公共祖先(Java版,树形dp套路)class TreeNode { int val; TreeNode left;

2021-05-18 19:50:44 1761

原创 leetcode 521. 最长特殊序列 Ⅰ(Java)

题目https://leetcode-cn.com/problems/longest-uncommon-subsequence-i/题解题目描述的比较晦涩,解释一下:给你两个字符串 a, b,从这两个字符串的子串中,找到最长的不是对方子序列的子串的长度。分析之后,会发现需要讨论的情况很少。思路对于两个字符串来说,如果一个比另一个长,则选择长的;如果两和个一样长,则只要不完全相同,就返回任意一个长度;如果完全相同,则返回-1public class Solution { /*

2021-05-17 20:30:43 1727

原创 Firefox Nightly 让 Android 机用上任意桌面端附加组件 | Expanded extension support in Firefox for Android Nightly

Firefox Nightly 让 Android 机用上任意桌面端附加组件官方文档:https://blog.mozilla.org/addons/2020/09/29/expanded-extension-support-in-firefox-for-android-nightly/Expanded extension support in Firefox for Android NightlyA few weeks ago, we mentioned that we were working

2021-05-15 12:25:50 1764

原创 如何退出 detached 的 screen 会话?| how to kill a detached screen session?

Questionhow to kill a detached screen session?Solution 1You can quit that screen without attaching to it. First, find its session:$ screen -lsand then quit it:$ screen -XS [session # you want to quit] quit(-X = Execute command, -S session PID to e

2021-05-15 10:10:00 1699

原创 leetcode 520. 检测大写字母(Java版)

题目https://leetcode-cn.com/problems/detect-capital/题解两次遍历,O(n) 时间复杂度。第一次遍历,统计大写字母个数第二次遍历,根据大写字母个数,判断属于那个 statuspublic class Solution { /** * status 1. 全部字母都是大写,比如"USA"。 * status 2. 单词中所有字母都不是大写,比如"leetcode"。 * status 3. 如果单词不只含有一

2021-05-15 09:56:21 2011

原创 leetcode 509. 斐波那契数(Java版)

题目https://leetcode-cn.com/problems/fibonacci-number/题解递归解法class Solution { public int fib(int n) { if (n == 0) return 0; if (n == 1) return 1; return fib(n - 1) + fib(n - 2); }}

2021-05-14 12:25:27 2004

原创 leetcode 507. 完美数(Java版)

题目https://leetcode-cn.com/problems/perfect-number/题解枚举 n 的所有因数,并计算它们的和。(或者逆向思路:枚举 n 的所有因数,用 n 分别减去这些因数,看最终是否为 0)在枚举时,我们只需要从 1 到 sqrt(n) 进行枚举即可。这是因为如果 n 有一个大于 sqrt(n) 的因数 x,那么它一定有一个小于 sqrt(n) 的因数 n/x注:如果遍历从 1 到 n,或者遍历 n/2 的话,都会超时。所以必须从 1 到 sqrt(n)。pu

2021-05-12 17:06:47 2026

原创 leetcode 506. 相对名次(Java版)

题目https://leetcode-cn.com/problems/relative-ranks/题解思路主要是,将运动员一开始的位置记录下来,方便颁奖的时候去指定位置颁给指定的人。先用map记住每个人的下标,然后给每个人排序。排序后即可顺序推断出奖项名称。于是,根据分数查询 map,找到原有的下标,将奖项名称填入原有的下标中。代码import java.util.Arrays;import java.util.HashMap;public class Solution {

2021-05-11 15:12:05 2007

原创 leetcode 504. 七进制数(Java版)

题目https://leetcode-cn.com/problems/base-7/题解经典的进制转化。此思路可以拓展至 10 进制转 n 进制。public class Solution { public String convertToBase7(int num) { int n = num; if (num < 0) n *= -1; if (num == 0) return "0"; StringBuilder

2021-05-09 23:56:23 2345

原创 leetcode 501. 二叉搜索树中的众数(Java版)

题目https://leetcode-cn.com/problems/find-mode-in-binary-search-tree/题解中序遍历二叉搜索树,可以得到一个有序序列。遍历这个有序序列,找到众数。import java.util.*;class TreeNode { int val; TreeNode left; TreeNode right; TreeNode() { } TreeNode(int val) {

2021-05-08 00:16:10 2356

原创 leetcode 500. 键盘行(Java版)

题目https://leetcode-cn.com/problems/keyboard-row/题解对于每一个单词,先确定所在键盘行数,然后验证后面的字母是否在同一行。class Solution { public static String[] findWords(String[] words) { HashMap<Character, Integer> map = new HashMap<>(); map.put('q', 1);

2021-05-06 23:45:06 2335

原创 leetcode 496. 下一个更大元素 I(Java版,单调栈解法)

题目https://leetcode-cn.com/problems/next-greater-element-i/题解通过Stack、HashMap解决,经典的单调栈问题先遍历大数组nums2,首先将第一个元素入栈;继续遍历,当当前元素小于栈顶元素时,继续将它入栈;当当前元素大于栈顶元素时,栈顶元素出栈,此时应将该出栈的元素与当前元素形成key-value键值对,存入HashMap中;当遍历完nums2后,得到nums2中元素所对应的下一个更大元素的hash表;遍历nums1的元素在ha

2021-05-06 21:15:47 2354

原创 leetcode 492. 构造矩形(Java版,三种解法)

题目https://leetcode-cn.com/problems/construct-the-rectangle/题解方法1:O(n^2) 暴力解法双循环,小优化是:保证宽比长大 public int[] constructRectangle(int area) { int minDif = area; int length = 0; // 大 int width = 0; // 小 for (int i = 1; i &

2021-05-06 19:21:53 2364

原创 leetcode 485. 最大连续 1 的个数(Java版)

题目https://leetcode-cn.com/problems/max-consecutive-ones/题解本题比较简单,两分钟搞定。思路是:维护一个全局最大和局部最大,并保持全局最大及时更新即可。public class Solution { public int findMaxConsecutiveOnes(int[] nums) { int maxCount = 0; int curCount = 0; for (int i :

2021-05-05 10:58:01 2627

原创 leetcode 482. 密钥格式化(Java版)

题目题解题目本身不难,会有一些边界条件造成的小坑。public class Solution { /** * 分组之间需要用 '-'(破折号)隔开,第一部分的字符可以少于给定的数量 * 额外的破折号需要删掉 * 所有的小写字母转换为大写字母 */ public String licenseKeyFormatting(String s, int k) { char[] chars = s.toCharArray();

2021-05-05 10:49:47 2631

原创 leetcode 476. 数字的补数(Java版)| How to extract ‘k’ bits from a given position in a number

题目https://leetcode-cn.com/problems/number-complement/思路我们想要返回已知数字的补数(num>=1)。思路:获取 num 的二进制数将 num 的二进制数取反由于取反后,所有高位的 0 都会变为1,所以需要截取有效的低位,得到真正的返回结果* 参考:How to extract ‘k’ bits from a given position in a numberhttps://www.geeksforgeeks.org/ex

2021-05-04 12:27:18 2619

原创 leetcode 463. 岛屿的周长(Java版)

题目https://leetcode-cn.com/problems/island-perimeter/题解思路需要三次遍历首先,总边数=陆地个数*4然后,横向遍历棋盘,纵向遍历棋盘,如果有相邻,则遍数-2得到的就是外围边数改进将三次遍历简化成一次遍历,注意边界的判断public class Solution { public int islandPerimeter(int[][] grid) { int x = grid[0].length;

2021-05-03 11:51:17 2609

原创 leetcode 461. 汉明距离(Java版)

题目https://leetcode-cn.com/problems/hamming-distance/题解使用 Java 中的按位异或 ^ 运算符:https://www.baeldung.com/java-xor-operatorFor example, let’s consider two integers 1 and 3, whose binary representations are 00000001 and 000000011, respectively. Then, using t

2021-05-03 11:05:34 2631

Java小球躲避小游戏

Java开发的小球躲避小游戏。通过上下左右按键控制小球移动,小球移动的方向包括:横向、纵向、斜向,小球具有初始生命值。小球通过移动来躲避炮弹,当小球碰到炮弹时,产生爆炸的动画效果。注释很全面,速度、初始子弹数量都可以通过全局变量修改。适合入门学习使用。

2019-06-24

寒泉Hq的留言板

发表于 2020-01-02 最后回复 2020-04-18

空空如也

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

TA关注的人 TA的粉丝

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