leetcode
leetcode刷题
wL魔法师
这个作者很懒,什么都没留下…
展开
-
[算法]回溯题-剪枝
回溯算法-返回不同的子集原创 2022-07-04 17:23:51 · 344 阅读 · 1 评论 -
[排序]快速排序
快速排序快速排序(Quicksort)是对冒泡排序的一种改进。快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。可以把快速排序看着三个步骤:1.选择基准值:在待排序列中,按照某种方式挑出一个元素,作为基准值。2.分割操作:以该基准值在序列中的实际位置,把序列分成两个子序列,一原创 2022-05-15 16:36:14 · 69 阅读 · 0 评论 -
【编程语言】Java二维数组
为了方便组织各种信息,计算机常将信息以表的形式进行组织,然后再以行和列的形式呈现出来。二维数组的结构决定了其能非常方便地表示计算机中的表,以第一个下标表示元素所在的行,第二个下标表示元素所在的列。下面简单了解一下二维数组,包括数组的声明和初始化。创建二维数组在Java中二维数组被看作数组的数组,即二维数组为一个特殊的一维数组,其每个元素又是一个一维数组。Java 并不直接支持二维数组,但是允许定义数组元素是一维数组的一维数组,以达到同样的效果。声明二维数组的语法如下:type arrayNam转载 2022-05-11 19:19:04 · 854 阅读 · 0 评论 -
【贪心】划分字母区间
读到这道题一开始没理解,看了别人解答后理解的是,分割为N段字符串数组,每一个被分割的单位内的字符只存在于这个组内,有一点最小回文子串的味道。下面是我的解题代码与解释:class Solution { public List<Integer> partitionLabels(String s) { //一共26个字符,a~z,last数组存每个字符在 s 中最后的位置 int last[] = new int[26]; for(in..原创 2022-04-27 14:43:31 · 218 阅读 · 0 评论 -
[贪心]分发饼干
class Solution { public int findContentChildren(int[] g, int[] s) { Arrays.sort(s); Arrays.sort(g); int count = 0 ; for(int i=0 ,index = 0;index<g.length&&i<s.length;i++){ if(s[i]>=g[index...原创 2022-04-20 17:09:29 · 207 阅读 · 0 评论 -
[排序]数组中第K个最大元素
调APIclass Solution { public int findKthLargest(int[] nums, int k) { ArrayList<Integer> b = new ArrayList<>(); for(int i = 0;i<nums.length;i++){ b.add(nums[i]); } Collections.sort(b); ..原创 2022-04-16 09:25:10 · 344 阅读 · 0 评论 -
[双指针]通过删除字母匹配到字典里最长单词
class Solution { public String findLongestWord(String s, List<String> dictionary) { String longWords = ""; for(String target:dictionary){ int l1 = longWords.length();int l2 = target.length(); if(l1>...原创 2022-04-15 11:26:42 · 264 阅读 · 0 评论 -
[双指针]环形链表
环形链表一般都用快慢指针进行判断,因为如果有环他们始终是无法结束的,同时快的指针会与慢的指针相遇。public class Solution { public boolean hasCycle(ListNode head) { if (head == null || head.next == null) { return false; } ListNode slow = head; ListNo..原创 2022-04-13 16:12:51 · 427 阅读 · 0 评论 -
[双指针] 验证回文字符串 Ⅱ
正确答案,双指针class Solution { public boolean validPalindrome(String s) { int low = 0, high = s.length() - 1; while (low < high) { char c1 = s.charAt(low), c2 = s.charAt(high); if (c1 == c2) { ...原创 2022-04-11 13:54:56 · 255 阅读 · 0 评论 -
[双指针]反转字符串中的元音字母
class Solution { private final static HashSet<Character> vowels = new HashSet<>(Arrays.asList('a', 'e', 'i', 'o','u', 'A', 'E', 'I', 'O', 'U')); public String reverseVowels(String s) { int a = 0; int b = s.length(...原创 2022-04-10 20:53:39 · 281 阅读 · 0 评论 -
[双指针]两数平方和
正确代码class Solution { public boolean judgeSquareSum(int c) { long left = 0; long right = (long) Math.sqrt(c); while (left <= right) { long sum = left * left + right * right; if (sum == c) { ..原创 2022-04-10 11:02:21 · 431 阅读 · 1 评论 -
[双指针]两数之和 II - 输入有序数组
解题思路:如果两个指针指向元素的和 sum == target,那么得到要求的结果;如果 sum > target,移动较大的元素,使 sum 变小一些;如果 sum < target,移动较小的元素,使 sum 变大一些。class Solution { public int[] twoSum(int[] numbers, int target) { int i = 0; int j = numbers.length ...原创 2022-04-09 10:37:37 · 389 阅读 · 0 评论