数据结构与算法
文章平均质量分 53
_respect__
这个作者很懒,什么都没留下…
展开
-
LeetCode153中关于二分法查找的while循环条件问题(left < right 还是 left <= right)
1.题目力扣153题,点击这里参考题解,点击这里2. 代码代码 1 while (left < right) public int findMin1(int[] nums) {//输入的nums是不重复元素的数组。所以:mid = right 等价于 nums[mid] = nums[right] int left = 0; int right = nums.length - 1; while (left &l原创 2021-05-10 15:28:51 · 1430 阅读 · 0 评论 -
关于快速与归并排序的分治(子问题)思想笔记
1. 快速排序代码 public static void quickSort(int[] nums, int start, int end) { int mid = start + (end - start) /2; int pivot = nums[mid]; int s = start; int e = end; while (s < e) { while (nums[s] < p原创 2021-04-23 12:02:39 · 282 阅读 · 0 评论 -
LeetCode33搜索旋转排序数组
题目描述整数数组 nums 按升序排列,数组中的值 互不相同 。在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], …, nums[n-1], nums[0], nums[1], …, nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,5,6,7] 在下标 3 处经旋转后可能变为 [4,5,6,7,0,1,2] 。给你 旋转后 的数组 nums 和一个原创 2021-04-18 10:06:37 · 49 阅读 · 0 评论 -
LeetCode 228 数组越界问题和字符串拼接
1.题目描述给定一个无重复元素的有序整数数组 nums 。返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表。也就是说,nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范围但不属于 nums 的数字 x 。列表中的每个区间范围 [a,b] 应该按如下格式输出:“a->b” ,如果 a != b“a” ,如果 a == b示例 1:输入:nums = [0,1,2,4,5,7]输出:[“0->2”,“4->5”,“7”]解释:区间范围是:[0,2]原创 2021-03-24 10:31:51 · 191 阅读 · 0 评论 -
关于滑动窗口算法的边界问题--LeetCode209
1.题目描述给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。示例 1:输入:target = 7, nums = [2,3,1,2,4,3]输出:2解释:子数组 [4,3] 是该条件下的长度最小的子数组。2.代码 //滑动窗口 // 2, 7, 1, 2, 1, 3原创 2021-03-20 12:39:38 · 438 阅读 · 0 评论 -
java关于栈的数据结构简单应用
题目 有效的括号给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。代码public class Solution { public static boolean isValid(String s) { int n = s.length(); if (n % 2 == 1) {原创 2020-11-18 21:47:40 · 95 阅读 · 0 评论