- 博客(6)
- 收藏
- 关注
原创 Day 9 | 字符串进阶
Leetcode 28思路:1、朴素解法(首先入眼的)2、KMP算法3、Pythonic 法(find)Pythonic 方法Leetcode 459看到题目的时候一点想法都没有看到了一个秀的发麻的解法:
2024-03-13 21:06:43 172
原创 Day 7 | 哈希表进阶*
关注了网上哈希表还有其他的方法,感觉实在是太麻烦了,这道题的难点是不重复上,所以我们在循环上,做了一点小手脚,保证不重复的遍历,虽然时间复杂度会有点高,但工作量比较简单。需要注意的是,hashmap采用的是链地址法,数组的每个索引处都是一个链表结构,所以这里不是hashmap[n1+n2] in hashmap 而是n1+n2。这道题是哈希表的经典题目,这里只是要输出满足结果的数量,并没有很高的去重的要求。解题思路很巧妙,先判断A和B数组之和,下标是(n1 + n2)的哈希值进行计数。
2024-03-12 20:31:50 248 1
原创 算法 | Day2 数组进阶
有人会问题目中不是已知了是一个非递减的数列为什么还要排序,我们可以先讲所有的元素全部转化为正数在排列,最后就直接平方就可以了。然后我们看比较高大上的双指针方法,核心思想是在旧数组进行两头筛选判断,在讲结果进行平方操作输入新数组中,代码如下。在取正数这一步,我进行了一个小简化,判断大于等于 0 的时候就退出循环,个人认为也是一个不错的方法。这里考虑过了很多方法,最后还是推荐滑动窗口法,因为题目要求是,连续的数组。本人认为双指针解法和我所说的先排列后计算思路差不多。思路一:先计算后排列。思路二:先排列后计算。
2024-03-07 20:39:09 208
原创 算法 | Day 1 数组
mid = int (-0.5) = 0 此时 nums[mid] 会报错,数组上标或下标越界,Out of range。如果len(nums) == 0 即我们输入的是一个空数组,那么此时 left = 0 right = -1。显然是不行的,如果输入的数组是单元素数组 [1],此时 left = 0 = right。快慢指针法,可以抽象理解成,A是输入数组,B是输出数组,A和B是同一个数组。1、是否需要判断 len(nums) == 0。2、mid 是否需要是整数。二分法从中间开始查找。
2024-03-06 09:41:14 703 1
原创 在自制的OJ下判断两个文件输出是否符合要求
测试 ./programe 输入为 in.txt, 输出到 out.txt,正确答案为 right.txt的情况下的正确性。如果正确的话,输出Accept,否则输出Wrong Answer。注意:一个程序是正确的当且仅当它的输出与标准输出完全一致或它的输出比标准输出的结尾多或少一个换行符(’ \n ‘ )#include <stdio.h>、#include <string.h>#include "run.h"int main(){ const cha...
2021-07-12 15:16:44 519
原创 代码版本管理工具Git
Git 的发展历史在做一个项目工程的时候,代码总是不断地更新,于是你就可能一边写代码,一边就为你的代码创建了很多的版本文件夹,分别叫“项目 0.1”、“项目 0.2”、“项目 0.3”、“项目 1.0”之类的名字,让你可以区分哪个是新版本,哪个是老版本。当你想找到一个曾经修改过的代码时,你可能会根本记不起你是在创建哪个版本文件夹的时候做出了这个修改。更要命的是,如果你和一个同事一起在做一个项目,你拷给他了某一个版本。之后的几天,你和他都在这个基础上做了一些修改。当你们想把这些修改放到一起,做一个新版
2021-07-10 15:10:10 2327
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人