刷题刷题
抽空刷刷题
little star*
一名程序媛的进届之路
展开
-
2021-11-16[每日一题]391. 完美矩形__python3
给你一个数组 rectangles ,其中 rectangles[i] = [xi, yi, ai, bi]表示一个坐标轴平行的矩形。这个矩形的左下顶点是 (xi, yi) ,右上顶点是 (ai, bi) 。如果所有矩形一起精确覆盖了某个矩形区域,则返回 true ;否则,返回 false 。https://leetcode-cn.com/problems/perfect-rectangle/通俗易懂的解法:class Solution: def isRectangleCover(se.原创 2021-11-16 16:16:03 · 319 阅读 · 0 评论 -
python:二分插入排序算法的实现
二分插入排序算法算法思想:二分插入排序属于插入排序的一种,所以基本思想都一致:都是将某个元素插入到已经有序的序列的正确的位置。二分插入排序与直接插入排序的区别:直接插入排序:是从待排序元素前一位的元素开始,一个个进行比较,从而找到正确的位置;二分插入排序:利用前面部分已有序的特点,结合二分查找的特点,找到正确的位置,从而将待排元素插入进去,并保持新序列依旧有序。排序思路:1、在一组无...原创 2019-06-18 16:29:47 · 2806 阅读 · 0 评论 -
python:二分查找算法的实现
二分查找算法二分查找也称折半查找,它是一种效率较高的查找方法。将原本是线性时间提升到了对数时间范围,大大缩短了搜索时间,但它有一个前提,就是必须在有序数据中进行查找。注意点:二分查找是比较容易出错的;出错原因主要集中在判定条件和边界值的选择上,很容易就会导致越界或者死循环的情况。查找过程:假设表中元素是按升序排列① 将列表中间坐标位置上的元素与要查找元素进行比较② 比较的结果1:两者...原创 2019-06-15 15:59:40 · 394 阅读 · 0 评论 -
python:插入排序(直接插入)的实现
插入排序是一种简单直观且稳定的排序算法。将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据。**基本思想:**每步将一个待排序的记录,按其关键码值的大小插入前面已经排序的列表中适当位置上,直到全部插入完为止。将排序的数组分成两部分:第一部分已排好序的元素,第二部分包含即待插入元素。在排序过程中,分别从待插入元素中取出元素,插入到已排好序的元素列表中。**分类:**...原创 2019-06-13 18:37:48 · 1798 阅读 · 0 评论 -
python:冒泡排序的实现,冒泡排序与选择排序的对比
冒泡排序是一个排序算法。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端。其核心是:重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。应用场景:小规模数据排序,队列从小到大排序实例:将下列列表从小到大进行排序List = [1, 5, 7, 4, 9]for i...原创 2019-06-06 22:17:11 · 887 阅读 · 0 评论 -
python:选择排序(打擂台法)的实现
选择排序是一个排序算法。其核心为:固定位置,选择元素,即:先从序列中,找到最小的元素,放在第一个位置,之后找到第二小的元素,放在第二个元素,以此类推,就可以完成整个排序工作了。常用于以下场景: 将若干个数按照从小大到大或从大到小进行排序实例:将下列列表中的数字从小到大进行排序。list = [1, 5, 7, 4, 9]for i in range(0,5): for j...原创 2019-06-05 14:09:09 · 3411 阅读 · 0 评论 -
数据结构笔试题5
version_10使用递归将栈转置 ReverseStackRecursivelydef getAndRemoveLat(stack): res = stack.pop() if len(stack) == 0: return res else: last = getAndRemoveLast(stack) stack.append(res) return lastd...原创 2019-12-16 22:51:13 · 153 阅读 · 0 评论 -
数据结构题4
version_81.链表每个节点包含一个数字,所有的数字组合在一起倒序表示为一个多位数 现在输入两个链表,将这两个链表表示的值相加并以这种形式返回一个链表 addTwoNumbersdef addTwoNumbers(l1, l2): head = ListNode(0) l = head carry = 0 while l1 or l2 or carry: sum, carry...原创 2019-12-15 21:27:11 · 193 阅读 · 0 评论 -
数据结构笔试题3
version_61.反转链表 reverse_listdef reverse_list(pHead): if pHead is None or len(pHead)==1: return pHead last = None while pHead: tmp = pHead.next pHead.next = last last = pHead pHead = tmp...原创 2019-12-14 21:38:56 · 177 阅读 · 0 评论 -
数据结构笔试题2
version_41.旋转字符串def rotate_strings(A, p): if A is None or len(A) == 1: return A else: listA = list(A) list1 = listA[:p] list2 = listA[p:] result = list2 + list1 return "".join(result)...原创 2019-12-13 22:30:05 · 213 阅读 · 0 评论 -
数据结构笔试题1
version_1 新增两道编程题1.寻找两个链表第一个公共节点class ListNode: def __init__(self, x): self.val = x self.next = Noneclass Solution: def FindFirstCommonNode(self, pHead1, pHead2): stack1 = [] stack2 = [...原创 2019-12-12 16:04:57 · 222 阅读 · 0 评论 -
剑指Offer【python3】16更
题目46:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007输入描述:题目保证输入的数组中没有的相同的数字数据范围:对于%50的数据,size<=10^4对于%75的数据,size<=10^5对于%100的数据,siz...原创 2019-11-16 23:29:16 · 296 阅读 · 0 评论 -
剑指Offer【python3】15更
题目44:输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)# -*- coding:utf-8 -*-# class TreeNode:# def __init__(self, x):# self.val = x...原创 2019-11-07 20:38:45 · 236 阅读 · 0 评论 -
剑指Offer【python3】14更
题目42:请实现一个函数用来匹配包括’.‘和’‘的正则表达式。模式中的字符’.‘表示任意一个字符,而’'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"abaca"匹配,但是与"aa.a"和"ab*a"均不匹配# -*- coding:utf-8 -*-class Solution: # s, p...原创 2019-11-05 18:03:02 · 228 阅读 · 0 评论 -
剑指Offer【python3】13更
题目39:在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。# -*- coding:utf-8 -*-class Solution: # 这里要特别注意~找到任意重复的...原创 2019-11-04 11:59:44 · 176 阅读 · 0 评论 -
剑指Offer【python3】12更
题目35:每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0…m-1报数…这样下去…直到剩下最后...原创 2019-11-02 21:07:13 · 279 阅读 · 0 评论 -
剑指Offer【python3】11更
题目32:统计一个数字在排序数组中出现的次数# -*- coding:utf-8 -*-class Solution: def GetNumberOfK(self, data, k): return data.count(k)题目33:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字# -*- coding:utf-8...原创 2019-11-01 21:19:12 · 235 阅读 · 0 评论 -
剑指Offer【python3】10更
题目29:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。# -*- coding:utf-8 -*-class Solution: def PrintMinNumber(self, numbers): if not numbers: ...原创 2019-10-30 17:14:20 · 249 阅读 · 0 评论 -
剑指Offer【python3】9更
题目25:输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。# -*- coding:utf-8 -*-class Solution: def GetLeastNumbers_Solution(self, tinput, k): if len(tinput) < k: ...原创 2019-10-29 16:38:15 · 237 阅读 · 0 评论 -
剑指Offer【python3】8更
题目22:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。# -*- coding:utf-8 -*-class Solution: def VerifySquenceOfBST(self, sequence): if sequence==None or len(sequence...原创 2019-10-28 15:32:33 · 154 阅读 · 0 评论 -
剑指Offer【python3】7更
题目20:定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。# -*- coding:utf-8 -*-class Solution: def __init__(self): self.stack = [] self.min_stack = [] def push(self, node): ...原创 2019-10-27 22:16:02 · 156 阅读 · 0 评论 -
《数据库SQL实战》2更
题目4:查找所有已经分配部门的员工的last_name和first_nameCREATE TABLE `dept_emp` (`emp_no` int(11) NOT NULL,`dept_no` char(4) NOT NULL,`from_date` date NOT NULL,`to_date` date NOT NULL,PRIMARY KEY (`emp_no`,`dept...原创 2019-10-26 23:26:46 · 156 阅读 · 0 评论 -
剑指Offer【python3】6更
题目17:输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)# -*- coding:utf-8 -*-# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = None...原创 2019-10-26 23:05:44 · 302 阅读 · 0 评论 -
《数据库SQL实战》1更
题目1:查找最晚入职员工的所有信息CREATE TABLE ‘employees’ (‘emp_no’ int(11) NOT NULL,‘birth_date’ date NOT NULL,‘first_name’ varchar(14) NOT NULL,‘last_name’ varchar(16) NOT NULL,‘gender’ char(1) NOT NULL,‘hi...原创 2019-10-25 18:45:28 · 198 阅读 · 0 评论 -
剑指Offer【python3】5更
题目14:输入一个链表,输出该链表中倒数第k个结点。# -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: def FindKthToTail(self, head, k...原创 2019-10-25 15:37:02 · 252 阅读 · 0 评论 -
剑指Offer【python3】4更
题目10:我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?# -*- coding:utf-8 -*-class Solution: def rectCover(self, number): if number < 1: return 0 p = ...原创 2019-10-24 17:20:14 · 146 阅读 · 0 评论 -
剑指Offer【python3】3更
题目6:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。# -*- coding:utf-8 -*-class Solution: def minNumbe...原创 2019-10-23 17:18:34 · 226 阅读 · 0 评论 -
剑指Offer【python3】2更
题目3:输入一个链表,按链表从尾到头的顺序返回一个ArrayList。# -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: # 返回从尾部到头部的列表值序列,例如[1,...原创 2019-10-22 16:58:27 · 166 阅读 · 0 评论 -
剑指Offer【python3】1更
题目1:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。class Solution: def Find(self,num,arr): # 二维数组的行 line = len(arr) # 二维数...原创 2019-10-21 14:49:31 · 190 阅读 · 0 评论 -
python每日算法 | LFU缓存(Day5)
Day5 难度:困难题干:设计并实现最不经常使用(LFU)缓存的数据结构。它应该支持以下操作:get 和 put。get(key) - 如果键存在于缓存中,则获取键的值(总是正数),否则返回 -1。put(key, value) - 如果键不存在,请设置或插入值。当缓存达到其容量时,它应该在插入新项目之前,使最不经常使用的项目无效。在此问题中,当存在平局(即两个或更多个键具有相同使用频...原创 2020-04-05 16:58:26 · 504 阅读 · 0 评论 -
python每日算法 | 接雨水(Day4)
Day4 难度:困难题干:给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 感谢 Marcos 贡献此图。示例:输入: [0,1,0,2,1,0,1,3,2,1,2,1]输出: 6思路:...原创 2020-04-04 21:23:21 · 365 阅读 · 0 评论 -
python每日算法 | 字符串转换整数 (atoi)(Day3)
Day3 题干:难度:中等请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下:如果第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字字符组合起来,形成一个有符号整数。假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成一个整数。该字符串在有效的整数...原创 2020-04-03 21:37:42 · 264 阅读 · 0 评论 -
python每日算法 | 有效括号的嵌套深度(Day2)
Day2 题干:难度:中等根据百度百科 ,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在 1970 年发明的细胞自动机。给定一个包含 m × n 个格子的面板,每一个格子都可以看成是一个细胞。每个细胞都具有一个初始状态:1 即为活细胞(live),或 0 即为死细胞(dead)。每个细胞与其八个相邻位置(水平,垂直,对角线)的细胞都遵循以下四条生存定律:如果活细胞周围八个位置的活细胞...原创 2020-04-02 19:58:34 · 337 阅读 · 0 评论 -
python每日算法 | 有效括号的嵌套深度(Day1)
Day1 题干:难度:中等有效括号字符串定义:对于每个左括号,都能找到与之对应的右括号,反之亦然。详情参见题末「有效括号字符串」部分。嵌套深度 depth定义:即有效括号字符串嵌套的层数。详情参见题末「嵌套深度」部分。给你一个「有效括号字符串」seq,请你将其分成两个不相交的有效括号字符串 A 和 B:「不相交」是指:每个 seq[i] 只能分给 A 和 B 二者中的一个,不能既属于 ...原创 2020-04-01 15:59:03 · 750 阅读 · 0 评论