面试经典-最长连续序列
最长连续序列题目128. 最长连续序列 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1: 输入:nums = [100,4,200,1,3,2]输出:4解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。 示例 2: 输入:nums = [0,3,7,2,5,8,4,6,0,1]输出:9 提示: 0 <= nums.length <= 105 -109 <= nums[i] <= 109 题解 排序后,滑动窗口解题,挺简单的 12345678910111213141516171819202122232425262728public static int longestConsecutive(int[] nums) { if (nums.length == 0) return 0; int max = 0; int temp = 1; A...
面试经典-无重复字符的最长子串
无重复字符的最长子串题目3. 无重复字符的最长子串 给定一个字符串 s ,请你找出其中不含有重复字符的 最长 子串 的长度。 示例 1: 123输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 123输入: s = "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。 示例 3: 1234输入: s = "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。 提示: 0 <= s.length <= 5 * 104 s 由英文字母、数字、符号和空格组成 题解 使用滑动窗口方法,挺简单的 12345678910111213141516public static int length...
面试经典-长度最小的子数组
长度最小的子数组题目209. 长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。 示例 1: 123输入:target = 7, nums = [2,3,1,2,4,3]输出:2解释:子数组 [4,3] 是该条件下的长度最小的子数组。 示例 2: 12输入:target = 4, nums = [1,4,4]输出:1 示例 3: 12输入:target = 11, nums = [1,1,1,1,1,1,1,1]输出:0 提示: 1 <= target <= 109 1 <= nums.length <= 105 1 <= nums[i] <= 104 进阶: 如果你已经实现 O(n) 时间复杂度的解法, 请尝试设计一个 O(n log(n)) 时间复杂度的解法。 题解题解一(暴力法)123456...
