刷题笔记
无名小卒tjs
Lucky dog!
展开
-
分数到小数
给定两个整数,分别表示分数的分子 numerator 和分母 denominator,以 字符串形式返回小数 。如果小数部分为循环小数,则将循环的部分括在括号内。 如果存在多个答案,只需返回 任意一个 。 对于所有给定的输入,保证 答案字符串的长度小于104示例 1:输入:numerator = 1, denominator = 2输出:“0.5”示例 2:输入:numerator = 2, denominator = 1输出:“2”示例 3:输入:numerator = 2, de.原创 2021-10-04 20:31:36 · 185 阅读 · 0 评论 -
搜索旋转排序数组
整数数组 nums 按升序排列,数组中的值 互不相同 。在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], …, nums[n-1], nums[0], nums[1], …, nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,5,6,7] 在下标 3 处经旋转后可能变为[4,5,6,7,0,1,2] 。给你 旋转后 的数组 nums 和一个整数 ta.原创 2021-09-12 14:52:35 · 69 阅读 · 0 评论 -
多源最短路径
01矩阵给定一个由 0 和 1 组成的矩阵 mat ,请输出一个大小相同的矩阵,其中每一个格子是 mat 中对应位置元素到最近的 0 的距离。两个相邻元素间的距离为 1最短路径 采用广度优先搜索BFS。如果采用遍历每一个 1,然后进行广度优先搜索,时间复杂度过大。这不是单源最短路问题。因此采用从所有0开始搜索,像广播一样。多源广度优先搜索 可以添加 超级源点转化为我们平时熟悉的单源 广度优先搜索。从超级源点出发同时到达矩阵中所有的0从所有的0开始向上下左右四个邻居扩展。其实多源广度优原创 2021-08-03 10:41:48 · 451 阅读 · 0 评论 -
二叉树遍历——迭代法
二叉树的前序遍历:根左右思路:栈S;p= root;while(p || S不空){ while(p){ 访问p; p入S; p = p的左子树; } p = S.top 出栈; p = p的右子树;}======================================================二叉树的中序遍历:左根右思路:栈S;p= root;while(p || S不空){ whi原创 2021-06-13 15:35:22 · 150 阅读 · 0 评论 -
反转数字——两种实现
一、在Python中转换成字符串再反转。str(x)[::-1]二、假设反转1234初值 num=0。1234%10 = 4,1234/10 = 123num+= 4 ×1000=4000123%10 = 3 ,123/10 = 12num+=3×100 = 430012%10 = 2 12/10 = 1num+=2×10 = 43201%10 = 1 1/10 = 0num+=1×1 = 4321结束x_fz = 0i = len(str(x))-1while x原创 2021-06-06 16:11:04 · 193 阅读 · 0 评论 -
相交链表——双指针
题目描述:给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。图示两个链表在节点 c1 开始相交:题目数据 保证 整个链式结构中不存在环。注意,函数返回结果后,链表必须 保持其原始结构解题思路:这道题目让求两个链表相交的节点, 利用双指针法O(m+n) 就可以遍历完成这道题目的思想是让 a, b 指针都走一遍 headA, headB 两个链表, a, b 相遇的地方就是两个链表相交的地方.a 指向 hea转载 2021-06-04 15:04:10 · 158 阅读 · 0 评论 -
Python 单链表
之前实现链表都是用 c语言实现的,遇到Python实现链表就懵逼了。。。。学会实现单链表之前,首先要学会Python 的类与对象。链表就是用Python 的类和对象实现的。所谓的指针就是地址值,而Python创建一个对象,再打印这个对象也是地址值。class student(object): passtian = student()print(tian)#<__main__.student object at 0x0000027B8790FFD0>首先要构建结点(这不相当于原创 2021-06-04 14:56:18 · 240 阅读 · 0 评论 -
连续子数组的和
题目描述:给你一个整数数组 nums 和一个整数 k ,编写一个函数来判断该数组是否含有同时满足下述条件的连续子数组:子数组大小 至少为 2 ,且子数组元素总和为 k 的倍数。如果存在,返回 true ;否则,返回 false 。如果存在一个整数 n ,令整数 x 符合 x = n * k ,则称 x 是 k 的一个倍数示例 1:输入:nums = [23,2,4,6,7], k = 6输出:true解释:[2,4] 是一个大小为 2 的子数组,并且和为 6 。示例 2:输入:nu原创 2021-06-03 14:38:50 · 254 阅读 · 0 评论 -
判断一个数是否是2的幂
若n = 2^x ,则首先n > 0其次一定满足 n & (n-1) = 0&为 “与” 运算符,与真值表如下:ABY000010100111举例:判断6是否为2的幂: 6的二进制为0b110 5的二进制为0b101 0b110 & 0b101 = 0b100 = 4判断16: 16 = 0b1000 , 15 = 0b0111 , 0b1000 & 0b0111 = 0b0000 = 0Py原创 2021-06-03 14:03:29 · 97 阅读 · 0 评论