自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 Leetcode 112. 路径总和

112. 路径总和之前做过257. 二叉树的所有路径,最直接的想法就是在这个基础上改一改。先把找所有路径的代码撸出来: public static List<List<TreeNode>> binaryTreePaths(TreeNode root) { List<List<TreeNode>> res = new ArrayList<>(); if (root == null){

2022-04-13 14:45:53 194

原创 Leetcode 404. 左叶子之和

404. 左叶子之和 - 力扣(LeetCode) (leetcode-cn.com)https://leetcode-cn.com/problems/sum-of-left-leaves/class Solution { public int sumOfLeftLeaves(TreeNode root) { if (root == null) { return 0; } return sum(root, false);

2022-04-06 13:45:28 129

原创 Leetcode 110.平衡二叉树

/** * 关键在于获取左子树和右子树的高度 * * 左子树或右子树已经不是平衡二叉树了,那么就不是平衡二叉树 * */class Solution { public boolean isBalanced(TreeNode root) { return getHeight(root) != -1; } int getHeight(TreeNode root){ if (root == null){ return .

2022-04-04 16:14:27 489

原创 记录一下学习整合SSM框架是遇到的一个错误

Mapped Statements collection already contains value for ...

2022-03-16 13:47:43 1187

原创 Leetcode 111. 二叉树的最小深度

111. 二叉树的最小深度还是层序遍历class Solution { public int minDepth(TreeNode root) { if (root == null) return 0; Queue<TreeNode> queue = new LinkedList<>(); queue.offer(root); int depth = 1;

2022-03-11 16:52:45 49

原创 Leetcode 104. 二叉树的最大深度

104. 二叉树的最大深度层序遍历法:class Solution { public int maxDepth(TreeNode root) { if (root == null) return 0; Queue<TreeNode> queue = new LinkedList<>(); queue.offer(root); int depth = 0; whil

2022-03-11 16:36:57 147

原创 Leetcode 429. N 叉树的层序遍历

429. N 叉树的层序遍历 - 力扣(LeetCode) (leetcode-cn.com)https://leetcode-cn.com/problems/n-ary-tree-level-order-traversal/和二叉树层序基本一样。class Solution { public List<List<Integer>> levelOrder(Node root) { if (root == null) return

2022-03-09 14:06:22 44

原创 Leetcode637. 二叉树的层平均值

637. 二叉树的层平均值 - 力扣(LeetCode) (leetcode-cn.com)https://leetcode-cn.com/problems/average-of-levels-in-binary-tree/就是层序遍历。需要注意的点是数据类型,(int/int)结果还是int,强转(double)(int/int)虽然变成了double,但是小数点后的就丢弃了。可以直接把sum定义成double。class Solution { public List<Double

2022-03-09 13:35:43 690

原创 Leetcode 102. 二叉树的层序遍历

102. 二叉树的层序遍历 - 力扣(LeetCode) (leetcode-cn.com)https://leetcode-cn.com/problems/binary-tree-level-order-traversal/class Solution { public List<List<Integer>> levelOrder(TreeNode root) { if (root == null) { return new A

2022-03-08 14:42:43 189

原创 Leetcode347. 前 K 个高频元素

347. 前 K 个高频元素 - 力扣(LeetCode) (leetcode-cn.com)https://leetcode-cn.com/problems/top-k-frequent-elements/首先要用Map统计出现次数,然后把Map的Entry依次加入小顶堆(用PriorityQueue实现)。为什么用小顶堆而不是大顶堆:小顶堆方便把出现次数最少的元素移除,保持堆的大小不超过k,这样时间复杂度会小于O(nlogn)。如果不及时移除,就相当于做了一次完整的堆排序,时间复杂度就是O(nlog

2022-03-07 12:49:42 64

原创 conda清华源

修改当前用户目录下.condarc文件show_channel_urls: truechannels: - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/ - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ - https://m

2022-03-06 22:12:51 1876

原创 Leetcode239. 滑动窗口最大值

239. 滑动窗口最大值 - 力扣(LeetCode) (leetcode-cn.com)https://leetcode-cn.com/problems/sliding-window-maximum/需要一个单调队列,这个队列的队头永远是最大的元素。窗口每往后移动一次,就将窗口中最左边的元素出队,最右边的下一个元素入队。为了保持窗口中最大值永远在队头,需要定义这个队列的入队和出队规则:入队:如果要入队的元素大于队尾元素,就把队尾元素移除,以保证越大的越靠近队头。例如队列本来是5,3,2,1现在4要

2022-03-06 22:08:12 56

原创 leetcode 150. 逆波兰表达式求值

150. 逆波兰表达式求值 - 力扣(LeetCode) (leetcode-cn.com)https://leetcode-cn.com/problems/evaluate-reverse-polish-notation/class Solution { public static int evalRPN(String[] tokens) { Stack<Integer> stack = new Stack<>(); for(Strin

2022-01-28 21:13:44 384

原创 leetcode 1047. 删除字符串中的所有相邻重复项

1047. 删除字符串中的所有相邻重复项 - 力扣(LeetCode) (leetcode-cn.com)https://leetcode-cn.com/problems/remove-all-adjacent-duplicates-in-string/1.用Stackclass Solution { public String removeDuplicates(String s) { Stack<Character> stack = new Stack<&g

2022-01-27 23:22:47 68

原创 leetcode 20. 有效的括号

20. 有效的括号 - 力扣(LeetCode) (leetcode-cn.com)https://leetcode-cn.com/problems/valid-parentheses/class Solution { private static boolean match(char a, char b) { if (a == '(') return b == ')'; if (a == '[') return

2022-01-27 22:59:44 117

原创 leetcode 225. 用队列实现栈

225. 用队列实现栈 - 力扣(LeetCode) (leetcode-cn.com)https://leetcode-cn.com/problems/implement-stack-using-queues/用一个队列就可以,pop的时候把队列里除了最后一个之外的所有元素重新加入队列,再poll()就好了。class MyStack { Queue<Integer> q; public MyStack() { q = new LinkedList&l

2022-01-27 22:35:15 130

原创 leetcode 459. 重复的子字符串

459. 重复的子字符串 - 力扣(LeetCode) (leetcode-cn.com)https://leetcode-cn.com/problems/repeated-substring-pattern/KMP不太熟练,就先暴力做一下。class Solution { public boolean repeatedSubstringPattern(String s) { int subLength = 1;//子串长度 while (subLength &

2022-01-26 00:22:57 295

原创 leetcode 左旋转字符串

剑指 Offer 58 - II. 左旋转字符串 - 力扣(LeetCode) (leetcode-cn.com)https://leetcode-cn.com/problems/zuo-xuan-zhuan-zi-fu-chuan-lcof/class Solution { public String reverseLeftWords(String s, int n) { StringBuilder sb = new StringBuilder(); for(

2022-01-24 00:19:39 5105

原创 leetcode 151. 翻转字符串里的单词

151. 翻转字符串里的单词 - 力扣(LeetCode) (leetcode-cn.com)https://leetcode-cn.com/problems/reverse-words-in-a-string/这个题涉及到很多字符串的操作,偷个懒,就先用String.trim()方法去掉前后的空格,中间的多余空格还是需要自己考虑。设置一个标志 firstBlank 表示是否为连续的第一个空格,如果为true就append进去,否则就跳过。class Solution { public Str

2022-01-24 00:10:05 180

原创 leetcode 541.反转字符串 II

541. 反转字符串 II - 力扣(LeetCode) (leetcode-cn.com)https://leetcode-cn.com/problems/reverse-string-ii/先把2k的整倍数之外的元素(剩余部分)处理了,之后留下的2k整倍数个就很好处理了。class Solution { public String reverseStr(String s, int k) { char[] chars = s.toCharArray(); if

2022-01-22 20:49:03 286

原创 leetcode 383. 赎金信

383. 赎金信 - 力扣(LeetCode) (leetcode-cn.com)https://leetcode-cn.com/problems/ransom-note/我是用HashMap做的,实际上用长度26的数组做也可以,应该会更快。class Solution { public boolean canConstruct(String ransomNote, String magazine) { Map<Character,Integer> map = ne

2022-01-22 00:06:42 246

原创 leetcode 454. 四数相加 II

454. 四数相加 II - 力扣(LeetCode) (leetcode-cn.com)https://leetcode-cn.com/problems/4sum-ii/先遍历前两个数组元素之间的和,然后记录到Map中(key是和,value是和出现的次数)。然后遍历后两个数组元素之间的和,判断这个和的相反数书否在Map中,若在,count 就加上此相反数出现的次数。class Solution { public int fourSumCount(int[] nums1, int[] n

2022-01-21 23:03:33 4927

原创 leetcode 202. 快乐数

202. 快乐数 - 力扣(LeetCode) (leetcode-cn.com)https://leetcode-cn.com/problems/happy-number/要判断sum有没有出现过,最好用hash.class Solution { public boolean isHappy(int n) { char[] chars = null; int[] nums = null; int sum; Set<Inte

2022-01-20 21:24:16 4191

原创 leetcode 349. 两个数组的交集

349. 两个数组的交集 - 力扣(LeetCode) (leetcode-cn.com)https://leetcode-cn.com/problems/intersection-of-two-arrays/用两个Set,第一个Set保存第一个数组的元素,第二个保存结果。class Solution { public int[] intersection(int[] nums1, int[] nums2) { Set<Integer> s1 = new HashS

2022-01-19 22:44:45 160

原创 leetcode 242. 有效的字母异位词

242. 有效的字母异位词 - 力扣(LeetCode) (leetcode-cn.com)英文字母总共就26个,创建一个长度26的整数数组,记录单词中每个字母出现的次数。不需要创建两个数组,第一个单词加第二个单词减,最后如果数组全部归零就说明是字母异位词。class Solution { public boolean isAnagram(String s, String t) { if (s.length() != t.length()) re

2022-01-19 22:02:43 589

原创 leetcode 142. 环形链表 II

142. 环形链表 II - 力扣(LeetCode) (leetcode-cn.com)https://leetcode-cn.com/problems/linked-list-cycle-ii/1.用HashSet记录遍历过的节点,哪个没被存进去就说明哪个是入环点。public class Solution { public ListNode detectCycle(ListNode head) { Set<ListNode> set = new HashSet

2022-01-19 16:15:11 53

原创 leetcode 链表相交

面试题 02.07. 链表相交 - 力扣(LeetCode) (leetcode-cn.com)在看别人的题解之前我有过两个思路。1.最容易想到的就是对链表A中的每个元素都在B中查找,如果找到了就是相交点,显然这种方法的时间复杂度比较高,leetcode执行用时是709ms。public class Solution { public ListNode getIntersectionNode(ListNode headA, ListNode headB) { if (h

2022-01-19 13:20:04 238

原创 leetcode 19. 删除链表的倒数第 N 个结点

19. 删除链表的倒数第 N 个结点 - 力扣(LeetCode) (leetcode-cn.com)最容易想到的方法就是做两次遍历,第一次得到链表长度,第二次找到倒数N并删除。还有一种双指针法,找倒数第N个元素就让 j 先走N-1步,之后 i,j 再一起走,直到 j 到达末尾,此时 i 就是要删除的结点。例如要找倒数第一个节点,j 就要先走0步,即 i,j 一起走直到末尾。做链表的题还是创建一个虚拟头节点比较方便。方法一class Solution { public Li

2022-01-17 23:33:32 39

原创 leetcode 24. 两两交换链表中的节点

24. 两两交换链表中的节点 - 力扣(LeetCode) (leetcode-cn.com)为了让思路更清晰一点,我把交换两个Node单独写成了方法,需要的时候直接调用。需要注意i 和j交换完之后下一次循环i,j的赋值。class Solution { public ListNode swapPairs(ListNode head) { if(head==null) return null; ListNode HEAD = ...

2022-01-17 23:22:42 78

原创 leetcode 206.反转链表

206. 反转链表 - 力扣(LeetCode) (leetcode-cn.com)一开始想到的是用栈反转,会占用额外空间,后来看了别人的代码,一个new都没有,直接就地反转。方法一class Solution { public ListNode reverseList(ListNode head) { if(head==null) return head; Stack<Integer> stack = new S

2022-01-17 22:30:31 43

原创 leetcode 707. 设计链表

设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val和next。val是当前节点的值,next是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性prev以指示链表中的上一个节点。假设链表中的所有节点都是 0-index 的。在链表类中实现这些功能:get(index):获取链表中第index个节点的值。如果索引无效,则返回-1。addAtHead(val):在链表的第一个元素之前添加一个值为val的节点。插入后,新节点将成为链表的...

2022-01-16 22:45:53 47

原创 leetcode 203.移除链表元素

给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。203. 移除链表元素 - 力扣(LeetCode) (leetcode-cn.com)leetcode上输入的链表是没有头节点的,感觉还是带头节点的链表操作起来方便一些,所以就创建了一个头节点HEAD,最后的结果返回HEAD.next就好了。class Solution { public ListNode removeElements(ListN

2022-01-16 21:42:33 108

原创 leetcode 59.螺旋矩阵II

给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。59. 螺旋矩阵 II - 力扣(LeetCode) (leetcode-cn.com) 刚开始看属实给我转晕了,还是忍不住看了题解。class Solution { public int[][] generateMatrix(int n) { int[][] result = new int[n][n]; int loop.

2022-01-16 21:38:30 129

原创 leetcode 209. 长度最小的子数组

给定一个含有n个正整数的数组和一个正整数 target 。找出该数组中满足其和 ≥ target 的长度最小的 连续子数组[numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。链接:https://leetcode-cn.com/problems/minimum-size-subarray-sumclass Solution { public int minSubArrayLen(int target,...

2022-01-16 00:09:59 54

原创 leetcode 704. 二分查找

leetcode 704. 二分查找

2022-01-13 18:27:13 56

原创 ubuntu 换源

sudo vim /etc/apt/sources.listdeb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ focal-security main r

2021-12-08 15:13:01 715

原创 pip换源

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

2021-12-08 15:10:23 1834

原创 CCF画图

试题编号: 201409-2 试题名称: 画图 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述   在一个定义了直角坐标系的纸上,画一个(x1,y1)到(x2,y2)的矩形指将横坐标范围从x1到x2,纵坐标范围从y1到y2之间的区域涂上颜色。   下图给出了一个画了两个矩形的例子。第一个矩形是(1,1) 到...

2018-09-12 15:45:32 120 1

原创 CCF游戏

试题编号: 201712-2 试题名称: 游戏 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述   有n个小朋友围成一圈玩游戏,小朋友从1至n编号,2号小朋友坐在1号小朋友的顺时针方向,3号小朋友坐在2号小朋友的顺时针方向,……,1号小朋友坐在n号小朋友的顺时针方向。   游戏开始,从1号小朋友开始顺时针报...

2018-09-11 15:13:02 119

原创 CCF窗口

试题编号: 201403-2 试题名称: 窗口 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述   在某图形操作系统中,有 N 个窗口,每个窗口都是一个两边与坐标轴分别平行的矩形区域。窗口的边界上的点也属于该窗口。窗口之间有层次的区别,在多于一个窗口重叠的区域里,只会显示位于顶层的窗口里的内容。   当你点...

2018-09-10 10:41:48 196 3

空空如也

空空如也

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

TA关注的人

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