您的位置:首页 > 新闻 > 资讯 > 视频剪辑公司_广州有几个区几个县级市_营销软文写作_西安网站建设公司排行榜

视频剪辑公司_广州有几个区几个县级市_营销软文写作_西安网站建设公司排行榜

2025/3/13 21:58:36 来源:https://blog.csdn.net/weixin_42804808/article/details/146178422  浏览:    关键词:视频剪辑公司_广州有几个区几个县级市_营销软文写作_西安网站建设公司排行榜
视频剪辑公司_广州有几个区几个县级市_营销软文写作_西安网站建设公司排行榜

2

https://leetcode.cn/problems/group-anagrams/?envType=study-plan-v2&envId=top-100-liked

在这里插入图片描述

    public List<List<String>> groupAnagrams(String[] strs) {Map<String, List<String>> map = new HashMap();for (int i = 0; i < strs.length; i++) {char[] array = strs[i].toCharArray();Arrays.sort(array);List<String> list = map.containsKey(new String(array)) ? map.get(new String(array)) : new ArrayList();list.add(strs[i]);map.put(new String(array), list);}return new ArrayList<>(map.values());}

8

在这里插入图片描述

    public int lengthOfLongestSubstring(String s) {char[] array = s.toCharArray();int left = -1,max = 0;Map<Character, Integer> map = new HashMap();for(int i = 0; i < array.length; i++){//以i为右指针 更新查找满足无重复的子串左指针if(map.containsKey(array[i])){left = Math.max(left, map.get(array[i]));}map.put(array[i], i);max = Math.max(max, i - left);}return max;}

6

在这里插入图片描述

      // 选定一个数 剩下的数字按照左右指针去寻找Arrays.sort(nums);List<List<Integer>> list = new ArrayList();for (int i = 0; i < nums.length - 2; i++) {// 重要的是剪枝if (nums[i] + nums[i + 1] + nums[i + 2] > 0)break;// 一定大于0场景if (i > 0 && nums[i] == nums[i - 1])continue; // 重复场景if (nums[i] + nums[nums.length - 1] + nums[nums.length - 2] < 0)continue;// 加上最大的两个值都<0场景 可以直接跳过// 设定两个双指针去寻找剩下的 两个值 这里就是两数之和了int left = i + 1, right = nums.length - 1;while (left < right) {int res = nums[i] + nums[left] + nums[right];if (res > 0) {right--;} else if (res < 0) {left++;} else {list.add(List.of(nums[i], nums[left], nums[right]));// 重复场景剪枝for (left++; left < right && nums[left - 1] == nums[left]; left++);for (right--; left < right && nums[right + 1] == nums[right]; right--);}}}return list;}

57

在这里插入图片描述

 List<String> ans = new ArrayList();StringBuilder str = new StringBuilder();Map<Character, String> map = new HashMap();public List<String> letterCombinations(String digits) {if(digits.length() == 0) return ans;map.put('2', "abc");map.put('3', "def");map.put('4', "ghi");map.put('5', "jkl");map.put('6', "mno");map.put('7', "pqrs");map.put('8', "tuv");map.put('9', "wxyz");dfs(0, digits);return ans;}private void dfs(int index, String digits){if(index == digits.length()){ans.add(str.toString());return;}char it = digits.charAt(index);String all = map.get(it);for(int i = 0; i < all.length(); i++){str.append(all.charAt(i));dfs(index + 1, digits);str.deleteCharAt(index);}}

43

在这里插入图片描述

               long last = Long.MIN_VALUE;// 1.递归if(root == null) return true;boolean left = isValidBSI(root.left);if(last >= root.val)return false;key = root.val;boolean right = isValidBSI(root.right);return left && right;// 2.中序遍历 保证数组递增 深度优先用栈或者递归 一般栈都会换双端队列Deque<TreeNode> deque = new ArrayDeque();while (root != null || !deque.isEmpty()) {if (root != null) {deque.push(root);root = root.left;} else {TreeNode poll = deque.poll();if (last >= poll.val) {return false;}last = poll.val;root = poll.right;}}return true;

98

在这里插入图片描述

   public void sortColors(int[] nums) {int left = 0, right = nums.length - 1;for(int i = 0; i < nums.length; i++){if(nums[i] == 0 && i > left){nums[i] = nums[left];nums[left] = 0;left++;i--;//这一步是为了保证换过来的数字要再判断一遍}if(nums[i] == 2 && i < right){nums[i] = nums[right];nums[right] = 2;right--;i--;}}}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com