随笔分类 -  刷题班

摘要:题目描述 思路:前缀和 前缀和数组(prefixSum)的构造 方法一: class Solution { public int[] runningSum(int[] nums) { int[] preSum = new int[nums.length]; preSum[0] = nums[0]; 阅读全文
posted @ 2024-01-14 16:22 Ac_c0mpany丶 阅读(22) 评论(0) 推荐(0)
摘要:题目描述 思路:左右指针 方法一:暴力,超出时间限制 模拟所有情况,记录最大的体积值。 体积 = Math.min(height[i], height[j]) * (j - i) class Solution { public int maxArea(int[] height) { int res 阅读全文
posted @ 2024-01-14 16:16 Ac_c0mpany丶 阅读(31) 评论(0) 推荐(0)
摘要:题目描述 思路:左右指针 只考虑数字和字母 字母的话需要全部转化为小写 然后使用左右指针判断是否是回文串 方法一: class Solution { public boolean isPalindrome(String s) { List<Character> list = new ArrayLis 阅读全文
posted @ 2024-01-14 16:10 Ac_c0mpany丶 阅读(20) 评论(0) 推荐(0)
摘要:题目描述 思路:左右指针 方法一: class Solution { public void reverseString(char[] s) { int left = 0, right = s.length - 1; while (left < right) { char temp = s[left 阅读全文
posted @ 2024-01-14 15:50 Ac_c0mpany丶 阅读(21) 评论(0) 推荐(0)
摘要:题目描述 思路:快慢指针 slow指针:其前面都是数值不等于val的元素。 fast指针:用于遍历。 方法一: class Solution { public int removeElement(int[] nums, int val) { int slow = 0, fast = 0; for ( 阅读全文
posted @ 2024-01-14 15:48 Ac_c0mpany丶 阅读(38) 评论(0) 推荐(0)
摘要:题目描述 思路:快慢指针 slow指针指向已经处理元素的下一个位置 因为数组有序,如果nums[fast] == nums[slow - 2],那么nums[fast] 肯定等于nums[slow - 1],那么此时这个数就出现了三次。此时slow保持不变,fast继续遍历。 关键:nums[fas 阅读全文
posted @ 2024-01-14 13:23 Ac_c0mpany丶 阅读(29) 评论(0) 推荐(0)
摘要:题目描述 思路:快慢指针 slow指针:指向已经处理的区域(没有重复元素)的最后一个位置 fast指针:指向当前正在处理的元素 方法一: class Solution { public int removeDuplicates(int[] nums) { int slow = 0, fast = 0 阅读全文
posted @ 2024-01-14 12:43 Ac_c0mpany丶 阅读(26) 评论(0) 推荐(0)
摘要:题目描述 思路:快慢指针 慢指针的左侧表示所有非零元素 快指针依次遍历每个元素 方法一:时间复杂度O(n2) class Solution { public void moveZeroes(int[] nums) { for (int i = 0; i < nums.length; i ++) { 阅读全文
posted @ 2024-01-08 12:06 Ac_c0mpany丶 阅读(35) 评论(0) 推荐(0)
摘要:题目描述 思路:原地哈希 原地哈希: 利用值与数组下标,我们可以构造一种对应"关系" 如果位置i-1上的数字是正数,则将其置为负数(即说明数字i出现过了) 如果位置i-1上的数字已经为负数,则不进行任何操作 再次遍历数组,将数值大于0的元素的下标+1加入到结果集中 关键字: 不使用额外空间且时间复杂 阅读全文
posted @ 2024-01-08 12:05 Ac_c0mpany丶 阅读(53) 评论(0) 推荐(0)
摘要:题目描述 思路:哈希(数组) 关键字:“小写字母”、“出现频率”这些关键字都是为哈希法量身定做的。 求每个字符在所有字符串中最小出现的次数。最小次数为几就在结果集中添加几次该字符。 方法一: class Solution { public List<String> commonChars(Strin 阅读全文
posted @ 2024-01-08 12:05 Ac_c0mpany丶 阅读(32) 评论(0) 推荐(0)
摘要:题目描述 思路 原地哈希: 利用值与数组下标,我们可以构造一种对应"关系" 找到数字i时,将位置i-1处的数字翻转为负数 如果位置i-1上的数组是正数,则将其置为负数 如果已经为负数,则i是出现两次的数字,则将其加入到结果集中 方法一: class Solution { public List<In 阅读全文
posted @ 2024-01-08 12:03 Ac_c0mpany丶 阅读(36) 评论(0) 推荐(0)