摘要: 数组 二分法查找 前提 数组为有序数组; 数组中没有重复元素。 优点 逻辑简单 难点 涉及很多边界条件,对区间定义不清楚,二分法则容易写乱 解决方法: 原则: 循环不变量规则 二分查找中,保持区间不变量,在循环寻找中每一次边界的处理都要坚持区间的定义来操作, 方式: 左闭右闭 左闭右开 左闭右闭 第 阅读全文
posted @ 2022-08-16 15:05 酷酷的排球 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 数组理论基础 数组是非常基础的数据结构,在面试中,考察数组的题目一般在思维上都不难,主要是考察对代码的掌控能力 也就是说,想法很简单,但实现起来 可能就不是那么回事了。 首先要知道数组在内存中的存储方式,这样才能真正理解数组相关的面试题 数组是存放在连续内存空间上的相同类型数据的集合。 数组可以方便 阅读全文
posted @ 2022-08-16 14:26 酷酷的排球 阅读(60) 评论(0) 推荐(0) 编辑
摘要: 内存管理 不同语言的内存管理 不同语言的内存管理方式: C/C++这种内存堆空间的申请和释放完全靠自己管理 Java 依赖JVM来做内存管理,不了解jvm内存管理的机制,很可能会因一些错误的代码写法而导致内存泄漏或内存溢出 Python内存管理是由私有堆空间管理的,所有的python对象和数据结构都 阅读全文
posted @ 2022-08-16 14:01 酷酷的排球 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 算法性能提升总结 巧用hash表 利用hash,来进行映射,从而降低代码的复杂度,和冗余度 eg: 求两个数之和 class Solution: def twoSum(self, nums: List[int], target: int)->List[int]: """ 暴力方法实现时间复杂度为O( 阅读全文
posted @ 2022-08-16 12:23 酷酷的排球 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 算法性能分析 时间复杂度分析 递归算法的时间复杂度 例题一: 求x的n次方 用一道题目,同样使用递归算法, 有的写出了O(n)的代码,有的写出了O(longn)的代码 时间复杂度为:O(n) 最直观的写法, 一个for循环求出结果,代码如下: def sample_1(x, n): result = 阅读全文
posted @ 2022-08-16 11:43 酷酷的排球 阅读(79) 评论(0) 推荐(0) 编辑