上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 31 下一页
摘要: 一、题目描述 ☆☆二、解法 方法1:滑动窗口. 时间复杂度 O(n) 、空间复杂度 O(1) 连续子数组 > 【滑动窗口】 class Solution { public int minSubArrayLen(int s, int[] nums) { if (nums == null || nums 阅读全文
posted @ 2020-12-07 16:36 不学无墅_NKer 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 一、题目描述 ☆☆☆二、解法 【最优解】:双指针(对撞指针),时间复杂度O(n) 核心是 缩减搜索空间 class Solution { public int maxArea(int[] height) { /** * 方法1:暴力法,时间复杂度O(n^2) */ /*int res = 0; fo 阅读全文
posted @ 2020-12-07 11:38 不学无墅_NKer 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 一、题目描述 二、解法 思路:对撞指针 class Solution { public String reverseVowels(String s) { if (s == null || s.length() < 2) return s; char[] chars = s.toCharArray() 阅读全文
posted @ 2020-12-07 10:51 不学无墅_NKer 阅读(77) 评论(0) 推荐(0) 编辑
摘要: 一、题目描述 二、解法 class Solution { public void reverseString(char[] s) { if (s == null || s.length == 0) return; int l = 0, r = s.length - 1; while (l < r) 阅读全文
posted @ 2020-12-07 10:29 不学无墅_NKer 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 一、题目描述 二、解法 思路1:双指针。 思路2:reverse后看是否相等。 class Solution { public boolean isPalindrome(String s) { if (s == null) return true; /** * 方法1:双指针 */ char[] c 阅读全文
posted @ 2020-12-07 10:14 不学无墅_NKer 阅读(62) 评论(0) 推荐(0) 编辑
摘要: 一、题目描述 二、解法 思路1:双指针。最优解,时间复杂度为O(n) 思路2:二分搜索。 (Tips:看见 数组 + 有序,第一时间想到 二分!!) 时间复杂度:O(nlogn),其中二分的复杂度为O(logn) class Solution { public int[] twoSum(int[] 阅读全文
posted @ 2020-12-06 18:26 不学无墅_NKer 阅读(60) 评论(0) 推荐(0) 编辑
摘要: 一、题目描述 ☆☆二、解法 方法1:基于快排的选择方法,即快排partition函数的应用。 Note: 针对本题来说,快排的枢纽点要随机取,否则极端测试用例,会导致退化为O(n^2) 方法2:基于堆排序的选择方法。 解法1: class Solution { public int findKthL 阅读全文
posted @ 2020-12-06 17:38 不学无墅_NKer 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 一、题目描述 二、解法 思路:就是归并排序的 “合并”部分。 class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { // 把nums1拷贝一份 int[] temp = new int[m]; for 阅读全文
posted @ 2020-12-06 15:08 不学无墅_NKer 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 一、题目描述 二、解法 思路1:计数排序。分别统计0,1,2的元素个数。 复杂度分析:时间复杂度:O(n);空间复杂度:O(k), k为元素的取值范围; 需要扫描数组两遍。 思路2:三路快排。 只需要遍历数组一遍 重点是设计循环不变量,定义zero和two的含义后,在循环中始终要维护这个定义。 cl 阅读全文
posted @ 2020-12-06 12:02 不学无墅_NKer 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 一、题目描述 ☆☆☆二、解法 思路:快慢指针。 class Solution { public int removeDuplicates(int[] nums) { if (nums == null || nums.length == 0) return 0; /** * 方法1 */ int in 阅读全文
posted @ 2020-12-05 17:23 不学无墅_NKer 阅读(56) 评论(0) 推荐(0) 编辑
上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 31 下一页