-
剑指offer
剑指offer题目来自leetcode剑指offer。字符串剑指 Offer 20. 表示数值的字符串(中等)题目题目链接请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。数值(按顺序)可以分成以下几个部分: 若干空格 一个 小数 或者 整数 (可选)一个 'e' 或 'E' ,后面跟着一个 整数 若干空格小数(按顺序)可以分成以下几个部分: (可选)一个符号字符('+' 或 '-') 下述格式之一: 至少一位数字,后面跟着一个点 '.' ...…
-
贪心、模拟(牛客)
贪心、模拟(牛客)题目来自牛客题目库 算法篇面试必刷TOP101。贪心BM95 分糖果问题(较难)题目题目链接一群孩子做游戏,现在请你根据游戏得分来发糖果,要求如下: 每个孩子不管得分多少,起码分到一个糖果。 任意两个相邻的孩子之间,得分较多的孩子必须拿多一些糖果。(若相同则无此限制) 给定一个数组 arr 代表得分数组,请返回最少需要多少糖果。要求: 时间复杂度为 O(n) 空间复杂度为 O(n)数据范围: 1≤n≤100000 ,1≤a~i~≤1000示例:示...…
-
双指针(牛客)
双指针(牛客)题目来自牛客题目库 算法篇面试必刷TOP101。BM87 合并两个有序的数组(简单)题目题目链接给出一个有序的整数数组 A 和有序的整数数组 B ,请将数组 B 合并到数组 A 中,变成一个有序的升序数组数据范围:0≤n,m≤100,∣A~i~∣<=100,∣B~i~∣<=100注意: 保证 A 数组有足够的空间存放 B 数组的元素, A 和 B 中初始的元素数目分别为 m 和 n,A的数组空间大小为 m+n 不要返回合并的数组,将数组 B...…
-
字符串(牛客)
字符串(牛客)题目来自牛客题目库 算法篇面试必刷TOP101。BM83 字符串变形(简单)题目题目链接对于一个长度为 n 字符串,我们需要对它做一些变形。首先这个字符串中包含着一些空格,就像”Hello World”一样,然后我们要做的是把这个字符串中由空格隔开的单词反序,同时反转每个字符的大小写。比如”Hello World”变形后就变成了”wORLD hELLO”。数据范围: 1≤n≤10^6^ , 字符串中包括大写英文字母、小写英文字母、空格。进阶:空间复杂度 O(n), 时间复杂度...…
-
动态规划(牛客)
动态规划(牛客)题目来自牛客题目库 算法篇面试必刷TOP101。BM62 斐波那契数列(入门)题目略。解法1 递归import java.util.*;public class Solution { public int Fibonacci (int n) { if(n == 1 || n == 2) return 1; return Fibonacci(n - 1) + Fibonacci(n - 2); }}时间复杂度 O(...…
-
递归、回溯(牛客)
递归、回溯(牛客)题目来自牛客题目库 算法篇面试必刷TOP101。BM55 没有重复项数字的全排列(中等)题目题目链接给出一组数字,返回该组数字的所有排列例如:[1,2,3]的所有排列如下[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2], [3,2,1].(以数字在数组中的位置靠前为优先级,按字典序排列输出。)数据范围:数字个数 0<n≤6要求:空间复杂度 O(n!) ,时间复杂度O(n!)示例:示例1:输入:[1,2,3]返回值:[[1,2,3],[1...…
-
哈希(牛客)
哈希(牛客)题目来自牛客题目库 算法篇面试必刷TOP101。BM50 两数之和(简单)题目题目链接给出一个整型数组 numbers 和一个目标值 target,请在数组中找出两个加起来等于目标值的数的下标,返回的下标按升序排列。(注:返回的数组下标从1开始算起,保证target一定可以由数组里面2个数字相加得到)数据范围:2≤len(numbers)≤10^5^,−10≤numbers~i~≤10^9^,0≤target≤10^9^要求:空间复杂度 O(n),时间复杂度 O(logn)示例...…
-
堆、栈、队列(牛客)
堆、栈、队列(牛客)题目来自牛客题目库 算法篇面试必刷TOP101。BM42 用两个栈实现队列(简单)题目题目链接用两个栈来实现一个队列,使用n个元素来完成 n 次在队列尾部插入整数(push)和n次在队列头部删除整数(pop)的功能。 队列中的元素为int类型。保证操作合法,即保证pop操作时队列内已有元素。数据范围:n≤1000要求:存储n个元素的空间复杂度为 O(n) ,插入与删除的时间复杂度都是 O(1)示例:输入:["PSH1","PSH2","POP","POP"]返回值:1,...…
-
二叉树(牛客)
二叉树(牛客)题目来自牛客题目库 算法篇面试必刷TOP101。BM23 二叉树的前序遍历(简单)题目题目链接给你二叉树的根节点 root ,返回它节点值的 前序 遍历。数据范围:二叉树的节点数量满足1≤n≤100 ,二叉树节点的值满足1≤val≤100 ,树的各节点的值各不相同示例 1:输入:{1,#,2,3}返回值:[1,2,3]解法1 递归前序遍历:根-左-右递归解题三步骤:终止条件、返回值、本级任务。 终止条件:节点为空 返回值:空 本级任务:根-左-右import java....…
-
二分查找、排序(牛客)
二分查找、排序(牛客)题目来自牛客题目库 算法篇面试必刷TOP101。BM17 二分查找-I(简单)题目题目链接请实现无重复数字的升序数组的二分查找给定一个 元素升序的、无重复数字的整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标(下标从 0 开始),否则返回 -1数据范围:0 ≤ len(nums) ≤ 2×10^5^ , 数组中任意值满足∣val∣≤10^9^进阶:时间复杂度 O(logn) ,空间复杂度O(1)示例...…
-
链表(牛客)
链表(牛客)题目来自牛客题目库 算法篇面试必刷TOP101。BM1 反转链表(简单)题目链接题目给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。数据范围: 0≤n≤1000要求:空间复杂度O(1) ,时间复杂度O(n) 。如当输入链表{1,2,3}时,经反转后,原链表变为{3,2,1},所以对应的输出为{3,2,1}。以上转换过程如下图所示:示例:示例1:输入:{1,2,3}返回值:{3,2,1}示例2:输入:{}...…
-
操作系统再探
…
-
栈与队列
栈与队列整理了栈与队列的理论、算法、相关题目。参考代码随想录。理论基础C++标准库最常用的STL是SGI STL,如果没有指定底层实现的话,默认是以deque为缺省情况下栈的底层结构。232.用栈实现队列题目题目链接:232.用栈实现队列请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):实现 MyQueue 类: void push(int x) 将元素 x 推到队列的末尾 int pop() 从队列的开头移除并返回元素 ...…
-
二叉树
二叉树整理了二叉树理论、算法、相关题目。参考代码随想录。二叉树理论基础二叉树的种类满二叉树满二叉树:如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。满二叉树深度为k,则有2^k-1^个节点。完全二叉树完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2^(h-1)^ 个节点。堆就是一棵完全二叉树,同时保证父子...…
-
栈与队列
栈与队列整理了栈与队列的理论、算法、相关题目。参考代码随想录。理论基础C++标准库最常用的STL是SGI STL,如果没有指定底层实现的话,默认是以deque为缺省情况下栈的底层结构。232.用栈实现队列题目题目链接:232.用栈实现队列请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):实现 MyQueue 类: void push(int x) 将元素 x 推到队列的末尾 int pop() 从队列的开头移除并返回元素 ...…
-
Python基础语法
Python基础语法博主对Python基础语法作了总结归纳。数据类型示例代码:age = age1 = age2 = 18name = "york sun"name2 = 'york sun 2' # '' and "" can be okprint(name, age, "\n")age3, age4, age5 = 13, 14, 15print(age1, age2, age3, age4, age5)age6 = age5print(id(age5)) # id():memory ...…
-
泉城酒店系统技术报告
泉城酒店系统技术报告博主原创系统泉城酒店系统的技术报告。综述一个包括前台用户功能和后台管理功能的酒店管理系统,使用Vue+Springboot+MySQL进行前后端分离Web开发。前台示例:后台示例:背景概述背景:由于经常在旅游时入住酒店,我想到了编写一个酒店系统。又因为系统在济南编写,故将系统命名为泉城酒店系统。目标:编写一个酒店系统,采用vue+springboot前后端分离框架,实现用户预订酒店等前台功能、管理员后台管理功能,并提供不同的界面以区分用户角色。主要功能:管理员与用户的注...…
-
操作系统总结归纳
操作系统总结归纳博主对操作系统的知识点作了总结归纳。在此感谢山东大学软件学院任国珍老师的教导。第一章 绪论 计算机系统四个组成部分 计算机硬件、操作系统、系统程序、用户。 操作系统概念 操作系统是一组控制和管理计算机硬件和软件资源、合理地对各类作业进行调度,以及方便用户的程序集合。 操作系统的目标 执行用户程序,更容易地解决用户问题。 使计算机系统使用方便。 有效地使用计算机硬件。 两个视角 用户视角、...…
-
设计原则和设计模式
博主对UML类图、设计原则、设计模式作了总结。设计原则与设计模式UML类图1. 关联关系(1) 单向关联:由类指向该类包含的成员变量类,用实线箭头:(2) 双向关联:两个类的成员变量类型为对方类,用实线:2. 聚合关系是整体和部分之间的关系,即成员对象是整体对象的一部分,但是成员对象可以脱离整体对象而存在。由部分指向整体,用实线和空心菱形:3. 组合关系是整体和部分之间的关系,即成员对象是整体对象的一部分,而且成员对象不可以脱离整体对象而存在。由部分指向整体,用实线和实心菱形:4. 依赖关...…
-
哈希表
博主对leetcode中的有关哈希表的题目作了总结。题目来源leetcode,点击题目链接即可直达leetcode对应题目。242. 有效的字母异位词题目题目链接:242. 有效的字母异位词给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。示例 1: 输入: s = “anagram”, t = “nagaram”输出: true示例 2: 输入: s = “rat”, t...…