随笔分类 - LeetCode
摘要:题目描述 Write a function that adds two numbers. You should not use + or any arithmetic operators. Note: a and b may be 0 or negative. The result fits in
阅读全文
摘要:题目描述 Imagine you are reading in a stream of integers. Periodically, you wish to be able to look up the rank of a number x (the number of values less t
阅读全文
摘要:#题目描述 给你一个有序数组 nums ,请你原地删除重复出现的元素,使每个元素最多出现两次,返回删除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组 并在使用**O(1)**额外空间的条件下完成。 80. 删除有序数组中的重复项 II 难度:简单 #题解 直接用双指针。slow指
阅读全文
摘要:#题目描述 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。 初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 的空间大小等于 m + n,这样它就有足够的空间保存来自 nums
阅读全文
摘要:#题目描述 森林中,每个兔子都有颜色。其中一些兔子(可能是全部)告诉你还有多少其他的兔子和自己有相同的颜色。我们将这些回答放在 answers 数组里。 返回森林中兔子的最少数量。 781. 森林中的兔子 难度:中等之简单 #题解 ##思路 贪心思想略加一些脑筋急转弯。 很容易捕捉到题目的两个关键点
阅读全文
摘要:#题目描述 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 LeetCode:53. 最大子序和 #题解 ##显而易见的暴力解法 最容易想到的便是暴力穷举所有的子段和的开头,显而易见时间复杂度是O(n^2)。 代码: class Solutio
阅读全文
摘要:#题目描述 以尽可能小的代价返回某无序系列中的两个最大值,当有重复的时设置某种机制进行选择。 #题解 首先要考虑的是重复的数的问题。 A.不处理重复数据方法:在处理第k大的元素时不处理重复的数据,也就是将原数组进行降序排序后,下标为k-1的元素。 B.去除重复数据方法:忽略重复的数据,这时候需要首先
阅读全文
摘要:#题目描述 假设有一个数列,它是一个有序数列围绕某个点旋转得到的。要求写算法在该数列中查找某给定数,看是否存在,存在则返回其位置。 #题解 ##暴力解法: 直接从前到后扫描整个数组,时间复杂度最优O(1),最坏O(n)。 public static int bfSearch(int[]arr,int
阅读全文
摘要:题目二 题目描述 5690. 最接近目标价格的甜点成本 难度:中等-中等 题解 解法一:三进制状态压缩 考虑到baseCosts、toppingCosts的长度最多都为10,每一种辅料都有加0、1、2份的选择,因此可以考虑三进制状态压缩求解。类似二进制的状态压缩。 以10种辅料为例。 直到curJ为
阅读全文
摘要:#题目描述 173. 二叉搜索树迭代器 #题解 ##思路一:扁平化 事先生成二叉树的中序遍历序列,随后再一个个地取。 遍历的时间复杂度为O(n),hasNext()与next()调用均为O(1)。 额外空间为辅助栈和数组,辅助站空间复杂度为O(h),h为树的最大深度,数组空间复杂度为O(n)。 /*
阅读全文
摘要:#思考题1:调研学习相似度的定义方法。 #思考题2: 给出方案实现O(1)时间内获得栈中最小值的函数?假如是队列呢? #思考题1题解: 相似度就是比较两个事物的相似性。查阅现有的方法发现,一般都是通过计算事物的特征之间的距离来度量相似度,如果距离小,那么相似度大;如果距离大,那么相似度小。关于相似度
阅读全文
摘要:#题目描述 5710. 积压订单中的订单总数 #题解 题目不难,主要是要读懂题意,一步步模拟,代码较长,需要细心检查。 坑较多,比如我犯了很多傻逼问题:想都不想就拿1<<9+7当作1000000007,更傻逼的是,<<的优先级低于+号,<<都没用对。 实时取最大和最小,可以用堆或者优先队列实现。这里
阅读全文
摘要:#题目描述 [115. 不同的子序列]https://leetcode-cn.com/problems/distinct-subsequences/ #题解 class Solution { public int numDistinct(String s, String t) { int m = s
阅读全文
摘要:#题目描述 [131. 分割回文串]https://leetcode-cn.com/problems/palindrome-partitioning/ #题解 求解所有可能的题目一般都是暴力搜索,没有什么特别的优化方法。 暴力搜索重要的思想是回溯思想: 从当前状态开始,依次搜索当前状态下的所有可能选
阅读全文
摘要:#题目描述 [503. 下一个更大元素 II]https://leetcode-cn.com/problems/next-greater-element-ii/ #题解 ##本题暴力解法思路简单: 找某一元素的下一个更大元素:只需从该元素向后扫描,再从开头扫到该元素前一个位置,如果找到大于该元素的第
阅读全文
摘要:#题目描述与背景介绍 ##背景题目: [674. 最长连续递增序列]https://leetcode-cn.com/problems/longest-continuous-increasing-subsequence/ [300. 最长递增子序列]https://leetcode-cn.com/pr
阅读全文
摘要:题目描述 338. 比特位计数 难度:中等-简单 给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。 示例 1: 输入: 2 输出: [0,1,1] 示例 2: 输入: 5 输出: [0,1,1,2,1,2] 进阶:
阅读全文
摘要:题目描述 304. 二维区域和检索 - 矩阵不可变 难度:中等-简单 解法 解法一 利用03.01题的思路,在求区域和时,利用每行的部分和可以通过03.01的方法求出,再累加各行的和。 这样,每次查询的时间复杂度与查询的行数成正比。 代码: 1 class NumMatrix { 2 int[][]
阅读全文
摘要:题目描述 303. 区域和检索 - 数组不可变 难度:简单-中等 题解 暴力解法 题目中给的数组的最大长度为10^4,最多调用方法10^4次,每次调用方法最多全部遍历一次数组,因此暴力解法的复杂度小于10^8,可以求解。 1 class NumArray { 2 int[] nums; 3 publ
阅读全文
摘要:题目描述 1178. 猜字谜 难度:困难-中等 外国友人仿照中国字谜设计了一个英文版猜字谜小游戏,请你来猜猜看吧。 字谜的迷面 puzzle 按字符串形式给出,如果一个单词 word 符合下面两个条件,那么它就可以算作谜底: 单词 word 中包含谜面 puzzle 的第一个字母。 单词 word
阅读全文

浙公网安备 33010602011771号