一周思进

每周学习总结,相信可以走的更远.

分治题解

最近学习积极性不高啊… 要控制啊 = = 将之前 ARTS 做的三个分治思想的题目单独整在一块再发下,方便后面回顾吧 一、归并排序 思路: 将数组拆分成两半,分别对这两半进行排序,然后将这排序后的两半再进行排序得到最终结果 将数组拆分两半的过程可以使用递归编程方式,直到无法再进行拆分为止 def merge(array: List, start: int, midd...

ARTS-WEEK10

Algorithm 用分治的思想重新做了下LeetCode 14题,还是没能直接做出来… class Solution: def longestCommonPrefix(self, strs): if not strs: return "" return self.lcp(strs, 0, len(strs)-1) ...

ARTS-WEEK9

Algorithm 这周学习快速排序 快排的整体思路是先选择一个值,比如直接选择末尾值,然后将数组中的元素与该值进行比较,比这小的放左边, 比这大的放右边,这样操作完之后,选择的这个值在数组中的位置就是明确了的,剩下的就是将左边的数据和右 边的数据通过同样的方法进行操作,可以通过递归方式来完成 这里的重点是如何原地将数值进行左右分区,方式是通过数值交换,思路有点类似双指针,一个指向要被...

ARTS-WEEK8

Algorithm 本周做了下 LeetCode 第8题,文章单独整理见 atoi实现 几个注意点: 1、int型最大值和最小值可以直接用宏INT_MAX和INT_MIN表示,在头文件”limits.h”中定义 2、越界需要通过越界值/10操作提前来进行判断,类似两数相加判断是否会越界,也可以提前通过最大值来减原有值与相加值进行比较 3、这里data需要声明成无符号int整型,否则L...

atoi实现

LeetCode第8题,atoi实现 这一题个人觉得主要是考察越界处理 假设我们的环境只能存储 32 位大小的有符号整数,那么其数值范围为 [−2^31,  2^31 − 1]。如果数值超过这个范围,请返回  INT_MAX (2^31 − 1) 或 INT_MIN (−2^31) 。 代码实现如下: #include <ctype.h> // isdig...

ARTS-WEEK7

Algorithm 上周学习了下递归,这周学习递归在排序算法中的使用-归并排序 思路: 将数组拆分成两半,分别对这两半进行排序,然后将这排序后的两半再进行排序得到最终结果 将数组拆分两半的过程可以使用递归编程方式,直到无法再进行拆分为止 def merge(array: List, start: int, middle: int, end: int): len ...

Linux命令-uname

在下载 frp 工具的时候,对应该选择哪个进行下载有点不知所措… 通过搜索简单了解了下,并做下记录。 首先上图中的,darwin、freebsd、linux 指的是操作系统,这个可以通过 uname -s 命令来进行查看 如在 MAC 下执行则是 ➜ ~ uname -s Darwin 在树莓派下执行则是: [email protected]:~ $ uname -s Linux ...

ARTS-WEEK6

Algorithm 在极客时间上学习了下相关递归的文章,并做了下爬楼梯问题、汉诺塔问题、赏金问题、整数乘机问题、麦子问题和阶乘问题。 递归题解 Review https://en.wikipedia.org/wiki/Server_Name_Indication eavesdropper: 窃听者 discrepancy: 差异 impractical:不切实际的 justif...

递归题解

这周在极客时间上将递归相关的专栏文章都学习看了下,其中《数据结构与算法之美》专栏中的文章觉得很受用。 文章归纳了对于一个题解是否适合递归方式去解决,我个人学习后总结为满足如下两个条件即可: 1、这个问题能否转成数据规模更小的问题,但问题的本质实际是一样的,即解题思路还是一样 2、是否存在终止提交 所以写递归的关键是要找到如何将大问题转化成小问题的方法,以此来写出递推公式,然后再推敲终止条...

vscode-自动生成代码

上周同事分享了用 eclipse 在自动创建头文件时,会自动生成如下宏定义代码 #ifndef __TEST_H #define __TEST_H #endif 感叹还能这样提高自己的工作效率~ 在工作中,多想想哪些是可以自动化做掉的,就尽量去实现自动化操作,提高自己的工作效率。 因为在转 vscode 使用,所以搜索了解了下 vscode 可以通过配置用户代码片段来实现类似功能...