
leetcode刷题笔记
_,_
这个作者很懒,什么都没留下…
展开
-
leetcode刷题笔记 剑指 Offer 04. 二维数组中的查找
题目描述:在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路:从矩阵的左下角元素开始与target作比较,如果大于target,则该行的元素都比目标值大,向上一行查找,如果小于目标值,则该列都比目标值小,向右一列查找,等于则返回true,当遍历完所有行或者所有列,则没有目标值,返回fasleclass Solution: def findNu原创 2021-03-10 22:21:05 · 176 阅读 · 0 评论 -
leetcode刷题笔记 面试题 02.05. 链表求和
题目描述:给定两个用链表表示的整数,每个节点包含一个数位。这些数位是反向存放的,也就是个位排在链表首部。编写函数对这两个整数求和,并用链表形式返回结果。思路:两个链表同时按位相加,把相加的结果对10取余和整除10,用取余的结果创建节点,整除的结果用在下一位的相加。# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x#原创 2021-03-10 21:28:31 · 170 阅读 · 0 评论 -
leetcode刷题笔记 面试题 03.05. 栈排序
题目描述:栈排序。 编写程序,对栈进行排序使最小元素位于栈顶。最多只能使用一个其他的临时栈存放数据,但不得将元素复制到别的数据结构(如数组)中。该栈支持如下操作:push、pop、peek 和 isEmpty。当栈为空时,peek返回 -1。我的思路:建立一个辅助栈,使得每次push的元素能够插入到它该去的位置,有点类似于插入排序,整个栈是有序的。class SortedStack: def __init__(self): self.data = [] .原创 2021-03-10 17:07:32 · 272 阅读 · 0 评论 -
常用的六大排序算法介绍与python实现
一. 冒泡排序 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 代码实现:def bubble_sort(li): for i in range(len(li)-1):#第i趟 for j in range(len(原创 2021-03-09 17:22:09 · 150 阅读 · 1 评论 -
leetcode剑指 Offer 13. 机器人的运动范围
描述:地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18。但它不能进入方格 [35, 38],因为3+5+3+8=19。请问该机器人能够到达多少个格子?思路:首先要定义一个计算行坐标和列坐标的数位之和的加法,然后构建一个可到达集合,用来储原创 2021-03-07 20:05:55 · 133 阅读 · 0 评论 -
leetcode刷题笔记938. 二叉搜索树的范围和
题目描述:给定二叉搜索树的根结点root,返回值位于范围[low, high]之间的所有结点的值的和。我的思路:既然是二叉搜索树,那么如果当前节点如果大于high,那么就应该去递归它的左孩子,如果小于low,就去递归右孩子。若是在范围内,则返回当前节点值+递归左孩子的返回值+递归右孩子的返回值。若当前节点为空,返回0.代码:# Definition for a binary tree node.# class TreeNode:# def __init__(self, v...原创 2021-03-07 15:22:35 · 148 阅读 · 0 评论