classSolution{publicvoidmoveZeroes(int[] nums){int k =0;for(int i =0;i < nums.length; i++){if(nums[i]!=0){nums[k]= nums[i];k++;}}for(int i = k; i < nums.length; i++){nums[i]=0;}}}
classSolution{publicvoidmoveZeroes(int[] nums){int k =0;for(int i =0; i < nums.length; i++){if(nums[i]!=0){int temp = nums[i];nums[i]= nums[k];nums[k]= temp;k++;}}}}
盛最多水的容器
classSolution{publicintmaxArea(int[] height){int left =0, right = height.length -1;int ans =0;while(left < right){int area =Math.min(height[left], height[right])*(right - left);ans =Math.max(ans, area);if(height[left]<= height[right]){left++;}else{right--;}}return ans;}}
接雨水
classSolution{publicinttrap(int[] height){int left =0, right = height.length -1;int leftMax =0, rightMax =0;int ans =0;while(left < right){leftMax =Math.max(leftMax, height[left]);rightMax =Math.max(rightMax, height[right]);if(height[left]< height[right]){ans += leftMax - height[left];left++;}else{ans += rightMax - height[right];right--;}}return ans;}}
滑动窗口
子串
普通数组
矩阵
链表
二叉树
二叉树的中序遍历
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val = val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val = val;* this.left = left;* this.right = right;* }* }*/classSolution{publicList<Integer>inorderTraversal(TreeNode root){List<Integer> reusltList =newArrayList<>();inorderVisited(root, reusltList);return reusltList;}privatevoidinorderVisited(TreeNode root,List<Integer> reusltList){if(root ==null){return;}inorderVisited(root.left, reusltList);reusltList.add(root.val);inorderVisited(root.right, reusltList);}}