摘要:
如果直接调用 sort API 然后要几个打印几个就没意思了,应该是和某个排序的内部过程结合 首先排除O(^N2^)的低效率排序算法,最先想到的其实是堆排序,小根堆,但是需要额外的空间 其次像快排、归并这样的也不合适…… 我想到了可以这样,快排第一轮划分之后,将部分舍去…… 应该就是这样了,堆排序或 阅读全文
摘要:
经典的选择题,但是这里要求用代码实现 我们可以根据 pop 结果去模拟这个过程,如果能够拟合,就是 true 什么情况下拟合成功? 两个指针都指向了数组末尾,同时栈空 太复杂了,条件能否简化一点? 什么时候拟合失败? pushed 指针指向末尾全部压入栈中,但是poped 数组指针卡住了,不匹配导致 阅读全文
摘要:
将 n 次相乘的幂运算转化为 log2N 次平方运算,并且采用**递归**算法 原书给出的==最优算法本身不处理负数,是外层函数处理的== ```cpp double myPow(double x, int n) { double res = pow(x, abs(n)); if (n > 1);/ 阅读全文
摘要:
可以使用栈,将每个单词(字符串)压栈,然后弹栈就 OK 了 好吧,实际写下来考虑到可能存在的多余空格问题,代码看起来并不简介,而且写之前就很明显直到需要最差额外 n 的空间,时间复杂度最差 2n,所以都不算好 思路是压栈的时候只压单词本身,弹栈的时候再去拼空格 ```c++ string rever 阅读全文
摘要:
双指针 ```c++ vector twoSum(vector& nums, int target) { // 题目中说了这是一个递增数组,而且我需要两个数字组成s vector res; int smallDigit = 0, bigDigit = nums.size() - 1; // 这要结果 阅读全文
摘要:
这题以前做过,和 力扣-3 重复 ```c++ int lengthOfLongestSubstring(string s) { // 本来应该是用map,但是其实可以使用数组替代,下标对应了字母 unordered_map map; int len = s.size(),maxLen=0;// 初 阅读全文
摘要:
### 读题 数字 0 ~ 25 分别对应了 a ~ z 一共 26 个字母 现在给一个数字,比如 12258,问可能对应多少种不同的翻译? 比如:1,2,2,5,8 12,2,5,8 12,25,8 1,22,5,8 1,2,25,8 一共 5 种 ### 思路 使用动态规划的三要素: 1. 数组 阅读全文
摘要:
判断是否为连续的数字,需要额外考虑的情况有一个,就是 0 可以代表任何数字,并且最多出现两次 给出的长度为 5 的数组不一定是顺序 ```C++ bool isStraight(vector& nums) { sort(nums.begin(), nums.end()); // 没有 0 的情况 i 阅读全文
摘要:
第一题是涉及到了 C++ 中的运算符重载 首先像是 Java、JS 这样的语言之中,是没有“运算符重载”这一概念的。对于运算符的行为,是由语言规范定义的,尽管我们还是能看到像 Java 中 String 类 “+” 操作,但是这也是预置的而不能自行重载。 我想这可能也是为什么 力扣 题单里面没有第一 阅读全文
摘要:
### 字符转义问题 在 MaBatis 的 XML 文件中编写SQL语句时,` ``` 会出现这种问题的原因是:**``解析冲突** #### 解决方案 1. 通过转义符 | 原符号 | `` | `>=` | `&` | `'` | `"` | | : : | : : | : : | : : | 阅读全文