
leetcode和剑指offer刷题每日两题
刷题汇总
liqianjiqiren
世界和平
展开
-
剑指offer 3.前n项数字二进制中1的个数(Brian Kernighan、动态规划、内置函数解法)
剑指offer 3.前n项数字二进制中1的个数目录剑指offer 3.前n项数字二进制中1的个数一、题目二、题解1. Brian Kernighan算法2. 动态规划3. python内置函数解法三、本道题遇到的知识盲区1.bin(x)函数2.二进制,八进制,十进制,十六进制概念与转换2.1 数制的基本概念2.2 进制的表示方式2.3 python进制的转换方式一、题目描述:给定一个非负整数 n ,请计算 0 到 n 之间的每个数字的二进制表示中 1 的个数,并输出一个数组。示例:二、题解1.原创 2022-05-05 16:43:57 · 603 阅读 · 0 评论 -
剑指offer 2.二进制加法
二进制加法思路:创建一个指针来保存进位,创建空字符串保存当前的结果补充知识点思路:创建一个指针来保存进位,创建空字符串保存当前的结果def addStrings(num1: str, num2: str): res = '' i1, i2, carry = len(num1)-1,len(num2)-1,0 while i1>=0 or i2>=0: x = ord(num1[i1]) - ord('0') if i1>=0 else 0原创 2022-05-04 22:06:25 · 349 阅读 · 0 评论 -
剑指offer1.整数除法(使用到位运算)
剑指offer1.整数除法方式使用位运算def divide( a: int, b: int) -> int: ret = 0 flag = False if (a > 0 and b > 0) or (a < 0 and b < 0) else True a, b = abs(a), abs(b) def calc(x, y): n = 1 #向左移一位代表乘2,向右移动一位代表除2 #位移原创 2022-05-04 18:10:17 · 224 阅读 · 0 评论 -
76.最小覆盖字字串(使用到collection.defaultdict)
最小覆盖字串方式一:滑动窗口思路:使用两个指针,不断使得窗口扩大,然后找出包含所有的子串的子串。有几个很重要的变量:need,needCnt,i,j新建字典need的作用(两个地方使用):1.这里主要在排查是否完全出现了t中的元素的时候:通过int整数的增减来统计元素的个数,若遍历到含有t的元素,新建的len()减一,直到len()为零,则算是包含了全部,并且t所含的元素个数置零2.判断是否是最小子串,排查前边的元素的时候3.其中need[c]的减一加一是一个很重要的点。from colle原创 2022-05-04 18:02:03 · 634 阅读 · 0 评论 -
3. 无重复字符的最长字符串(python 滑动窗口)
3. 无重复字符的最长字符串思路:从作到右逐渐找字串,如果遇到相同的就移除相同元素左边的元素,并且记录下当前字串。本题主要用到了三个变量和一个新集合:max_len = 0#用于记录最大字串的长度cur_len = 0#用于记录当前字串的长度left = 0#用于查找出字符串中相同元素,并在新建集合当中删除。lookup = set()#创建新的空字符串,往里边添加最新的字串。def lengthOfLongestSubstring(s):#s是一个字符串,可以用s[i] if not原创 2022-05-04 17:51:18 · 406 阅读 · 0 评论 -
2.两数相加(python 链表ListNode)
两数相加难点:难点:进位的保存,next值的处理,python中链表节点值的添加方式r.next = ListNode(s%10)。在本及pycharm上运行需要添加上ListNode函数class ListNode(): def __init__(self, val): if isinstance(val, int): self.val = val self.next = None elif isinstanc原创 2022-05-04 17:46:43 · 5677 阅读 · 1 评论 -
1. 两数之和(哈希表和暴力枚举)
两数之和方式一:哈希表,用最少的时间和空间复杂度基础知识:enumuerate:返回一个带有下标和数值的字典,字典的使用dict[index]=index所代表的值。还有另外一种字典的创建方式: hashtable = dict(),或者 dct = {}解题思路:首先赋值一个空字典,查看字典中有无target-n的值,如果没有,将n所在的赋值给空字典。(这里又有一个关键思路:题目要求返回的是所在的index,但是字典只能提取出值,使用dct[n] = i。)(因为字典是空的,所以第一次原创 2022-05-04 17:43:36 · 212 阅读 · 0 评论