
Leetcode
AllenC6
来战
展开
-
最接近的三数之和——LeetCode
【代码】最接近的三数之和——LeetCode。原创 2023-01-04 14:28:52 · 154 阅读 · 0 评论 -
最长公共子前缀——LeetCode
从第0位开始依次比较各个字符串的字符,记录公共子前缀,如果出现数组越界直接返回当前的公共子前缀。原创 2022-12-30 10:23:00 · 209 阅读 · 0 评论 -
罗马数字转整数——LeetCode
然后解析字符串(词法分析),每次识别两个字符组合成的字符串,如果映射中存在,则加上对应的数,然后继续往下解析,如果映射中不存在则只识别第一个,加上对应的映射的数,继续往下解析。把特殊的例如 "IV"等列出来和对应的数字组成映射,把原本七个字符和对应的数字也组成映射,原创 2022-12-29 10:36:00 · 284 阅读 · 0 评论 -
回文数字——LeetCode
【代码】回文数字——LeetCode。原创 2022-12-27 10:33:46 · 137 阅读 · 0 评论 -
整数反转——LeetCode
2.通过%10取最后一位。原创 2022-12-23 11:00:02 · 160 阅读 · 0 评论 -
Z字形变换——LeetCode
【代码】Z字形变换——LeetCode。原创 2022-12-22 11:02:27 · 114 阅读 · 0 评论 -
删除链表的倒数第 N 个结点——LeetCode
方法一:用遍历链表,用数组保存每一个节点,因为数组的特性,所以达到目的很简单:方法二:遍历计算链表的长度,注意: 在获取链表长度时遍历,如果直接用head遍历,head会直接指向链表尾,这样后面再用的时候,head就不是指向头节点了,然后就知道要删除哪一个节点了,这里有一个删除节点时的窍门:创建一个新的节点,放在头节点前,这样做就能够做到删除节点时判断的统一性,当删除的是头节点的时候就不用专门去处理了。这个窍门处理还是有点秀的:...原创 2022-06-30 15:15:48 · 123 阅读 · 0 评论 -
电话号码的字母组合——LeetCode
电话号码的字母组合、LeeCode、回溯原创 2022-06-29 15:23:43 · 141 阅读 · 0 评论 -
盛最多水的容器——LeetCode
盛最多水的容器、贪心算法、LeetCode原创 2022-06-28 16:06:14 · 202 阅读 · 0 评论 -
最长回文子串——LeeCode
最长回文子串——LeeCode原创 2022-06-07 17:31:47 · 1421 阅读 · 0 评论 -
无重复字符的最长子串——LeeCode
无重复字符的最长子串——LeeCode原创 2022-06-06 15:03:31 · 223 阅读 · 0 评论 -
两数之和——LeetCode
实现:public class AddTwoNumbers { public static void main(String[] args) { } public ListNode addTwoNumbers(ListNode l1, ListNode l2) { int added = 0; ListNode header = l1; ListNode tempListNode = l1; whi...原创 2022-05-31 11:54:03 · 90 阅读 · 0 评论 -
三数之和——Leetcode
解题思路:排序+双指针题目中要求找到所有「不重复」且和为 0的三元组,这个「不重复」的要求使得我们无法简单地使用三重循环枚举所有的三元组。这是因为在最坏的情况下,数组中的元素全部为 0,即[0, 0, 0, 0, 0, ..., 0, 0, 0]任意一个三元组的和都为 0。如果我们直接使用三重循环枚举三元组,会得到 O(N^3)个满足题目要求的三元组(其中 N是数组的长度)时间复杂度至少为 O(N^3)。在这之后,我们还需要使用哈希表进行去重操作,得到不包含重复三元组的最终答案,又消...原创 2022-04-29 11:14:22 · 601 阅读 · 0 评论 -
多数元素——LeetCode
代码:public class MajorityElement { //常规思路 public int majorityElement1(int[] nums) { int result = 0; Map<Integer, Integer> hashMap = new HashMap<>(); for (int i = 0; i < nums.length; i++) { if...原创 2022-04-26 17:04:55 · 70 阅读 · 0 评论 -
只出现一次的数字——Leetcode
代码实现:第一次想到用map,虽然能得到正确结果,但是不符合不用额外内存的要求 //用map 不符合不使用额外空间 public int singleNumber1(int[] nums) { int temp = 0; Map<Integer, Boolean> map = new HashMap<>(); for (int i = 0; i < nums.length; i++) { ..原创 2022-04-26 13:56:30 · 301 阅读 · 0 评论 -
两数之和 IV - 输入 BST——Leetcode
代码实现:public class FindTarget { public boolean findTarget(TreeNode root, int k) { if (root == null) return false; Map<Integer, Boolean> hashMap = new HashMap<>(); return findTarget(root, k, hashMap); }...原创 2022-04-25 14:04:12 · 493 阅读 · 0 评论 -
二叉树路径总和——Leetcode
代码实现:第一次写的错误代码: public boolean hasPathSum(TreeNode root, int targetSum) { if (root == null) return false; targetSum = targetSum - root.val; if (root.left == null && root.right == null){ if (targetSum...原创 2022-04-24 14:12:29 · 384 阅读 · 0 评论 -
对称二叉树——Leetcode
代码实现:public class IsSymmetric { public static class TreeNode { int val; TreeNode left; TreeNode right; TreeNode() { } TreeNode(int val) { this.val = val; } TreeNode(i...原创 2022-04-22 19:23:46 · 788 阅读 · 0 评论 -
二叉树的最大深度
代码实现:public class MaxDepth { public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode() { } TreeNode(int val) { this.val = val; } TreeNode(int val, Tree..原创 2022-04-22 14:14:06 · 752 阅读 · 0 评论 -
有效的字母异位词——Leetcode
代码实现:计数法: public boolean isAnagram(String s, String t) { int[] arr = new int[26]; for (int i = 0; i < s.length(); i++){ char temp = s.charAt(i); arr[temp - 'a'] ++; } for (int i = 0; i &l..原创 2022-04-22 11:32:16 · 78 阅读 · 0 评论 -
赎金信——Leetcode
代码实现:public class CanConstruct { public static void main(String[] args) { CanConstruct canConstruct = new CanConstruct(); System.out.println(canConstruct.canConstruct("aa","ab")); } public boolean canConstruct(String ra...原创 2022-04-22 11:10:34 · 428 阅读 · 0 评论 -
字符串中的第一个唯一字符——Leetcode
计数法解题: public int firstUniqChar(String s) { int length = 'z' - 'a' + 1; int[] arr = new int[length]; for (int i = 0; i < s.length(); i++){ char temp = s.charAt(i); arr[temp - 'a'] ++; }...原创 2022-04-22 10:56:17 · 87 阅读 · 0 评论 -
JVM性能调优技巧
一、JVM内存的分代划分首先我们要收集活跃数据的大小,例如JVM运行了一段时间,经过多次垃圾回收后程序稳定了,这时堆内存活的对象,就是活跃数据。以活跃数据为基准,总堆空间的大小 = 活跃数据 的 3 ~ 4倍,新生代 = 1 ~ 1.5倍活跃数据的大小老年代 = 2 ~ 3倍活跃数据的大小元空间 = 在经过 Full GC后 永久代还有多少存活的对象,按照 存活对象的 1.2 ~ 1.5倍的大小设置二、扩大新生代MinorGC触发的条件是新生代内存占满的时候,扩大新生代可以扩大Min原创 2022-04-22 00:22:42 · 226 阅读 · 0 评论 -
二叉树层序遍历——leetcode
public class LevelOrder { public List<List<Integer>> levelOrder(TreeNode root) { List<List<Integer>> treeList = new ArrayList<>(); if (root == null) return treeList; List<TreeNode> NodeList .原创 2022-04-21 19:26:43 · 294 阅读 · 0 评论 -
有效的括号——Leetcode
public class IsValid { public static void main(String[] args) { int a = '(' + ')'; System.out.println(a); int b = '{' + '}'; System.out.println(b); int c = '[' + ']'; System.out.println(c); ...原创 2022-04-21 14:21:25 · 95 阅读 · 0 评论 -
移除链表指定元素——Leetcode
代码实现:public class RemoveElementsFromLinkedList { public static void main(String[] args) { ListNode head = new ListNode(1); ListNode l1 = new ListNode(2); ListNode l2 = new ListNode(2); ListNode l3 = new ListNode(1...原创 2022-04-21 11:57:34 · 143 阅读 · 0 评论 -
环形链表——Leetcode
代码实现:public class HasCycle { public static void main(String[] args) { } //hashMap public boolean hasCycle1(ListNode head) { Map<ListNode,Integer> hashMap = new HashMap<>(); int index = 0; while...原创 2022-04-21 11:30:28 · 363 阅读 · 0 评论 -
删除链表中重复元素——Leetcode
代码实现:public class DeleteDuplicates { //迭代实现 public ListNode deleteDuplicates1(ListNode head) { if (head == null) return null; ListNode temp = head; ListNode next = head.next; while (next != null){ if..原创 2022-04-21 10:15:21 · 254 阅读 · 0 评论 -
二叉树前、中、后序遍历,递归加迭代——Leetcode
public class TreeTraverse { public static void main(String[] args) { TreeNode root = new TreeNode(1); TreeNode root1 = new TreeNode(2); TreeNode root2 = new TreeNode(3); root.right = root1; root1.left = root2;.原创 2022-04-20 15:03:21 · 508 阅读 · 0 评论 -
反转链表——Leetcode
一、反转链表第一次写的时候错误写法: //错误写法,因为用了headAndTemp作为中间变量去维护的指针 public static ListNode reverseList1(ListNode head) { if (head == null || head.next == null) return head; ListNode headAndTemp = reverseList1(head.next); //通过递归,遍历到最后一个...原创 2022-04-19 19:26:49 · 289 阅读 · 0 评论 -
合并两个有序链表——LeetCode
一、链表节点 public static class ListNode { public int val; public ListNode next; public ListNode(int val) { this.val = val; } }二、循环解法思想和归并排序有点像,注意指针操作。 public ListNode mergeTwoLists(ListNode lis..原创 2022-04-19 15:11:48 · 456 阅读 · 0 评论