05 2022 档案
摘要:做之前看题目的印象是“动态规划”,因为好像和以前做的“最大子数和”看起来有点像 查看标签有“滑动窗口”,这个见过听过,但是不知道具体是什么,但是有印象,计网里的拥塞控制也用到了“滑动窗口”的概念 感觉题目降低难度了,只是要求返回长度不是要求返回子串 有了计网“滑动窗口”的概念,我想是需要两个指针来表
阅读全文
摘要:根据题目描述,那么可以推断数组长度一定是个单数,最多有(n-1)/2对…… 线性时间复杂度,只遍历一次吗?不使用额外空间,就是在原数组上操作常数额外空间…… 我第一眼的想法是用map,保存然后遍历,但是这样不够高效,遍历一遍数组再遍历一遍map,官方题解里也确实指出了这种不够好的办法,而且我觉得就算
阅读全文
摘要:汉明距离是指:两个二进制数,不同位的个数 啊,我又想到了十进制转二进制的算法,我没写过,现在都还在我的草稿箱里 好,会写十进制转二进制了,现在我获得了保存了各位的两个栈 需要考虑的首要问题便成了如何解决位数不一致的问题,如果我想要比较他俩是否一致的话 我突然有个想法,为什么要转换完再比较呢?边转变比
阅读全文
摘要:二进制转十进制 #include <iostream> using namespace std; int main() { int a[10], n, i; cout<<"Enter the number to convert: "; cin>>n; for(i=0; n>0; i++) { a[i
阅读全文
摘要:这题看到的第一眼想法就是“栈”,因为只有最内层括号匹配了,才能匹配外层的括号 思路 要有正确的顺序,那么这样“({})”应该是非法的,“{{}}”这样应该也是非法,“(((())))”这样是否非法?不非法? 需要考虑的有两点 是否匹配 嵌套顺序 给的是一个字符串 从左到右依次扫描每一个字符,扫描到左
阅读全文
摘要:因为打算去找实习了,所以把之前学过、写到简历上的算法再复习一遍 冒泡排序 首先,快排是对冒泡排序的优化,那么回顾一下冒泡排序是怎么样的? 思路 冒泡排序是基于比较的排序 对于待排序列,从第一个元素开始,将当前元素与后一个元素作比较,如果>(<),则将两个元素交换位置 这样一轮结束后,序列末尾就变成了
阅读全文
摘要:回溯法模板题 回溯法 感觉这个方法的题目都比较难,全是中等 回溯算法本质上是对深度优先遍历DFS的优化,当**已经到达终点/已经没有可以选择(选择都访问过了)**的时候,,就向上回退一步 这里引入了一个概念叫“状态”——每一个节点表示了求解问题的不同阶段,而每一次回溯都需要“重置状态”(这在算法中的
阅读全文
摘要:这一题在 力扣 题单里面也没有,因为不是算法相关 ### 单例模式 常用模式中唯一一个能够用短短几十行代码完整实现的模式 > 即保持全局始终仅有一个对象实例,避免了频繁创建实例的开销;同时提供一个全局访问入口来实现获取唯一实例 > > 默认情况下,Spring 容器所管理的所有对象都是单例的 ###
阅读全文
摘要:位运算 基础概念 与:&(有0为0) 或:|(有1为1) 异或:^(相同0,不同1) 非:~(取反) 左移:相当于乘2;在左移n位时,最左边的n位将被丢弃,右边补上n个0 右移:相当于除2;在右移n位时,最右边的n位将被丢弃,左边补位分为两种情况,无符号数补0,有符号数补符号位(1) 使用技巧 1.
阅读全文
摘要:算法思路 不考虑进位各位相加,”0+0“”1+1“结果都是0,”0+1“”1+0“结果都是1,这便与”异或运算“的结果相同 进位操作,看作是两个数先做”与运算“,再向左移一位,只有当”1&1“时结果才为1 把前两步的结果相加 实现 int bitAdd(int num1, int num2) { /
阅读全文