随笔分类 - 算法
摘要:# 二分法查找模板 def bin_search(nums, val): if len(nums) == 0: return -1 left = 0 right = len(nums) - 1 # 当left 和right相邻 或者left等于right的时候停止循环 while left + 1
阅读全文
摘要:# 判断一个字符串中的有效括号()[]{}是否有效 def is_invalid(s): stack = [] for i in s: # 遇到左括号,则添加到堆栈中 if i == '(' or i == '[' or i == '{': stack.append(i) else: # 遇到右括号
阅读全文
摘要:class Node: def __init__(self, value=None, next=None): self.value = value self.next = next class LinkedList(object): def __init__(self): # 初始化链表时, 创建一
阅读全文
摘要:归并排序 归并 假设现在有一个列表分两段有序, 如何将其合成为一个有序列 思路: 双指针i, j 1.分别从两段从左到右进行比较, 谁小则移动指针, 并把这个较小的数存入一个临时list中 2.遍历完成后可能存在有个有序段未到末端, 需要再使用一个while 3.将排好序的temp写后原list中
阅读全文
摘要:字典的本质: 其内部是一个数组 将 key 通过一个hash function 计算出一个整数, 让后将计算出一个整数%数组长度求余 得出index, 将value存入该index对应的地址中 set 只有key, 没有value的dict. 对于dict, 所有的操作的时间复杂度都是O(1), 但
阅读全文
摘要:1. 偶数字串的数量 给定一串0-9的数字字符串, 计算在将整数转换为偶数时的字串数量 input: str = ‘1234’ output:6 有2 12 34 234 1234 这6个字符串,他们是偶数 题解: 找出偶数所在的位置, 则之前的字符都能和字符可以构成偶数, 有 i + 1 个 注意
阅读全文
摘要:# 节点类 class Node: def __init__(self, data, next=None): self.data = data self.next = next def __str__(self): return str(self.data) # 链表类 class LinkedLi
阅读全文