随笔分类 - LeetCode
摘要:解题思路 如果数组中全是正数或者全是负数,最大乘积就是最大的三个数的乘积。如果数组中既有正数又有负数,最大乘积可能是三个最大正数乘积,也可能是两个最小负数和最大正数的乘积。遍历数组找到最大的三个数和最小的两个数即可。 代码 class Solution { public int maximumPro
阅读全文
摘要:木桶效应 一只木桶能盛多少水,并不取决于最长的那块木板,而是取决于最短的那块木板。 解题思路 初始化left指针为左边界,right指针为右边界。首先获取短板的高度,即两个指针对应高度的较小值minHeight,由此计算容纳的水量为minHeight * (right - left),然后更新最大值
阅读全文
摘要:解题思路 使用哈希表存储字符以及对应的索引,窗口右边界right不断右移将新元素加入窗口,如果遇到重复的元素,就将窗口左边界left更新为 max(left, 重复元素的下一个位置),取两者之中的最大值是防止左边界left向左移动。 错误的思想: 遇到重复的元素,将窗口左边界left更新为 重复元素
阅读全文
摘要:解题思路 因为两个链表都是逆序的,所以可以直接遍历这两个链表,逐位相加。设两个链表当前位置的数字为 x,y,进位值为 carry,和为 sum,则 sum = x + y + carry,新的进位值 carry = sum / 10,答案链表相应位置的数字为 sum % 10。如果两个链表的长度不同
阅读全文
摘要:解题思路 使用哈希表存储数组元素的值和索引,遍历数组,对于每一个nums[i],都要先从哈希表中查找是否存在target - nums[i],如果存在就直接返回结果,如果不存在就将当前元素的值和索引存入哈希表。 代码 class Solution { public int[] twoSum(int[
阅读全文

浙公网安备 33010602011771号