随笔分类 - Leetcode
摘要:判断矩阵是否满足条件 给定二维矩阵,判断所有格子是否满足如下条件: 如果它下面的格子存在,那么它需要等于它下面的格子 如果它右边的格子存在,那么它需要不等于它右边的格子 遍历二维矩阵,简单模拟即可。 class Solution { public: bool satisfiesConditions(
阅读全文
摘要:删除有序数组中的重复项 给定一个有序数组,要求原地删除重复出现的元素,返回删除后的数组的长度。 这里的原地删除其实可以这样表示,用双指针从前往后扫一遍,遇到新的没出现过的元素就放到前面去,就可以实现删除后的数组前面都是不重复的元素。类似如下过程: 1 1 2 3 4 1 1 2 1 2 2 1 2
阅读全文
摘要:合并两个有序链表 将两个升序链表合并为一个新的升序链表。 用两个指针指向两个链表的表头,然后每次比较一下哪个值小,将较小的节点接到答案后面即可。 ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) { auto dummy = new
阅读全文
摘要:最接近的三数之和 给定整数数组和目标值target,从数组中选出三个整数,使得和与target最接近,并返回三数之和。保证恰好存在一个解。 和上一题类似,我们先对整数数组排序,然后固定i,枚举j,找到满足nums[i]+nums[j]+nums[k]>=target的最小的k。 那么显然有nums[
阅读全文
摘要:盛最多雨水的容器 数组的第\(i\)个数字表示这个位置隔板的高度,选择哪两块板子可以装最多的水,返回可以存储的最大水量。 有一种双指针的贪心策略:如果左边的指针所在的挡板低,就将左边的指针右移,否则将右边的指针左移。 每次移动完之后,计算当前能存储的水量,并和结果值相比较。 证明:假设最优解对应的两
阅读全文
摘要:Z字形变换 将给定的字符串从上往下、从左到右进行\(Z\)字形排列为\(numRows\)行,在按层序读取为一个新的字符串 \(0123456789\)排列成4行为: 0 6 12 1 5 7 11 13 2 4 8 10 14 3 9 15 可以读取为\(06121571113...\) 这是一个
阅读全文
摘要:两数之和 给定一个整数数组和一个目标值,在数组中找出和为目标值的两个整数,并返回其数组下标。题目确保必存在一个答案,且数组中无重复元素。 数组长度为\([2,10^4]\) 可以采用哈希表来存储每个值以及其出现的下标,那么对于nums[i]只需要查询在数组中是否出现过target-nums[i]即可
阅读全文

浙公网安备 33010602011771号