摘要:
求先升序后降序的数组中的最大值: 明显是二分,然后惯性思维总考虑mid和left和right之间的关系来判断接下来去哪个区间。 实际应该比较mid和mid-1和mid+1的大小关系。 如果mid-1<mid<mid+1,说明最大值在mid+1右侧 图: 如果mid-1>mid>mid+1,说明最大值 阅读全文
摘要:
题目: 给你一个仅由大写英文字母组成的字符串,你可以将任意位置上的字符替换成另外的字符,总共可最多替换 k 次。在执行上述操作后,找到包含重复字母的最长子串的长度。 注意:字符串长度 和 k 不会超过 104。 示例 1: 输入: s = "ABAB", k = 2 输出: 4 解释: 用两个'A' 阅读全文
摘要:
模板是范型编程的基础,所谓范型编程就是用独立与任何特定类型的方式编写代码所以简单地说,类是对象的抽象,而模板又是类的抽象,也就用模板能定义出具体类再理解深刻点在c++里,常说的多态一般分为两种:一种是运行时的多态,也就是虚函数体现的多态另一种是编译时的多态,也就是范型编程的多态,体现在参数的多态在作 阅读全文
摘要:
题目: 链接:https://leetcode-cn.com/problems/sentence-screen-fitting/ 给你一个 rows x cols 的屏幕和一个用 非空 的单词列表组成的句子,请你计算出给定句子可以在屏幕上完整显示的次数。 注意: 一个单词不能拆分成两行。 单词在句子 阅读全文
摘要:
const只是声明变量类型/函数返回类型为常量,不能改动。 constexpr修饰变量/函数是显式告知编译器“我是常量,不要在多费功夫了,直接把我替换为常量加入汇编代码!”。 比如下面这样的函数或者变量都是这种情况: 1 constexpr int x=1; 2 int constexpr f(){ 阅读全文
摘要:
C++中我们可以平时使用vector等容器时一般这样初始化:vector<int> p={1,2,3}; 其中{1,2,3}是一种叫initializer_list的类型,是C++11新出的 除了可以用来初始化容器, 还可以像python一样用: for x in [1,2,3]: print(x) 阅读全文
摘要:
题目: 链接:https://leetcode-cn.com/problems/find-k-pairs-with-smallest-sums/ 给定两个以升序排列的整形数组 nums1 和 nums2, 以及一个整数 k。 定义一对值 (u,v),其中第一个元素来自 nums1,第二个元素来自 n 阅读全文
摘要:
题目: 链接:https://leetcode-cn.com/problems/range-addition/ 假设你有一个长度为 n 的数组,初始情况下所有的数字均为 0,你将会被给出 k 个更新的操作。 其中,每个操作会被表示为一个三元组:[startIndex, endIndex 阅读全文
摘要:
题目: 给你一个非空的字符串 s 和一个整数 k,你要将这个字符串中的字母进行重新排列,使得重排后的字符串中相同字母的位置间隔距离至少为 k。 所有输入的字符串都由小写字母组成,如果找不到距离至少为 k 的重排结果,请返回一个空字符串 ""。 示例 1: 输入: s = "aabbcc", k = 阅读全文
摘要:
题目: 请你设计一个 贪吃蛇游戏,该游戏将会在一个 屏幕尺寸 = 宽度 x 高度 的屏幕上运行。如果你不熟悉这个游戏,可以 点击这里 在线试玩。 起初时,蛇在左上角的 (0, 0) 位置,身体长度为 1 个单位。 你将会被给出一个 (行, 列) 形式的食物位置序列。当蛇吃到食物时,身子的长度会增加 阅读全文