自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

badmer的博客

吃瓜群众xxx的笔记。

  • 博客(89)
  • 资源 (1)
  • 收藏
  • 关注

原创 字符串排序

2022-07-06 12:01:54 183 1

原创 31. 下一个排列

1.Description整数数组的一个 排列就是将其所有成员以序列或线性顺序排列。例如,arr = [1,2,3] ,以下这些都可以视作 arr 的排列:[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1] 。整数数组的 下一个排列 是指其整数的下一个字典序更大的排列。更正式地,如果数组的所有排列根据其字典顺序从小到大排列在一个容器中,那么数组的 下一个排列 就是在这个有序容器中排在它后面的那个排列。如果不存在下一个更大的排列,那么这个数组必须重排为字典序最小的排列(即,其元素按..

2022-03-10 21:36:13 146

原创 26. 删除有序数组中的重复项(先后指针)

1.Description给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有 k 个元素,那么 nums 的前 k 个元素应该保存最终结果。将最终结果插入 nums 的前 k 个位置后返回 k 。不要使用额外的空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间

2022-03-07 22:04:40 130

原创 24. 两两交换链表中的节点

1.Description给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。2.Example3.Code直接调换即可,注意判空。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), ne.

2022-03-07 16:11:17 240

原创 23. 合并K个升序链表

1.Description给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。2.Example3.My Code思路:我们使用map来保存每个链表的第一个节点的指针和数值,数值为key,指针为value;这样每次都去取map的第一个加到新链表上,erase该节点的同时insert链表的下一个节点;注意需要使用multimap/** * Definition for singly-linked list. * st.

2022-03-07 16:02:12 723

原创 22. 括号生成(回溯+剪枝)

1.Description数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。2.Example示例 1:输入:n = 3输出:["((()))","(()())","(())()","()(())","()()()"]示例 2:输入:n = 1输出:["()"]3.My Code回溯的办法,来遍历所有由括号组成的结果,然后判断是否合法,这里没有一点剪枝。class Solution {public: .

2022-03-06 23:19:18 443

原创 21. 合并两个有序链表

1.Description将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。2.Example3.My Code直接合并/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ...

2022-03-06 17:43:19 742

原创 20. 有效的括号

1.Description给定一个只包括 '(',')','{','}','[',']'的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。2.Example示例 1:输入:s = "()"输出:true示例2:输入:s = "()[]{}"输出:true示例3:输入:s = "(]"输出:false示例4:输入:s = "([)]"输出:false示例5:输入:s =...

2022-03-06 17:06:34 147

原创 19. 删除链表的倒数第 N 个结点(先后指针)

1.Description给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。2.Example3.Code使用暴力解法:选获得链表长度,再计算从正数应该删除第几个先后指针解法:指针q在指针p的前n步,一起往前走,当q指向末尾,此时的p->next就是要被删除的class Solution {public: ListNode* removeNthFromEnd(ListNode* head, int n) { ListNo...

2022-03-05 22:30:08 336

原创 18. 四数之和

1.Description给你一个由 n 个整数组成的数组nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组[nums[a], nums[b], nums[c], nums[d]](若两个四元组元素一一对应,则认为两个四元组重复):0 <= a, b, c, d< na、b、c 和 d 互不相同nums[a] + nums[b] + nums[c] + nums[d] == target你可以按 任意顺序 返回答案 。2.Exa...

2022-03-02 23:33:20 57

原创 17. 电话号码的字母组合(回溯/DFS)

1.Description2.Example示例 1:输入:digits = "23"输出:["ad","ae","af","bd","be","bf","cd","ce","cf"]示例 2:输入:digits = ""输出:[]示例 3:输入:digits = "2"输出:["a","b","c"]3. Code回溯法(DFS):回溯都是一个模板,写几遍就晓得了。某处有多种选择时,for遍历;开始一轮后先检查边界条件收集结果,结束一轮后回退。cl.

2022-03-01 22:53:00 116

原创 16. 最接近的三数之和(双指针)

1.Description给你一个长度为 n 的整数数组nums和 一个目标值target。请你从 nums 中选出三个整数,使它们的和与target最接近。返回这三个数的和。假定每组输入只存在恰好一个解。2.Example示例 1:输入:nums = [-1,2,1,-4], target = 1输出:2解释:与 target 最接近的和是 2 (-1 + 2 + 1 = 2) 。示例 2:输入:nums = [0,0,0], target = 1输出:...

2022-03-01 21:53:40 88

原创 15. 三数之和(双指针)

1.Description给你一个包含 n 个整数的数组nums,判断nums中是否存在三个元素 a,b,c ,使得a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。2.Example示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]示例 2:输入:nums = []输出:[]示例 3:输入:nums = [0]输出:[]3.Cod...

2022-03-01 19:51:52 202

原创 14. 最长公共前缀

1.Description编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。2.Example示例 1:输入:strs = ["flower","flow","flight"]输出:"fl"示例 2:输入:strs = ["dog","racecar","car"]输出:""解释:输入不存在公共前缀。3.My Codeclass Solution {public: string longestCommonPref.

2022-02-28 21:42:51 171

原创 13. 罗马数字转整数

1.Description罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做II,即为两个并列的 1 。12 写做XII,即为X+II。 27 写做XXVII, 即为...

2022-02-27 16:08:32 193

原创 12. 整数转罗马数字(贪心)

1.Description罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做II,即为两个并列的 1。12 写做XII,即为X+II。 27 写做XXVII, 即为X...

2022-02-27 15:11:31 76

原创 11. 盛最多水的容器(双指针)

1.Description给定一个长度为 n 的整数数组height。有n条垂线,第 i 条线的两个端点是(i, 0)和(i, height[i])。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。2.Example3.Code (暴力解timeout,使用双指针的方法)采用双指针的方法,置头尾指针,谁的高度低谁就向中间移动。方法正确的证明:力扣class Solution {public: ...

2022-02-25 17:33:12 673

原创 8. 字符串转换整数 (atoi)

1.Description请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。函数 myAtoi(string s) 的算法如下:读入字符串并丢弃无用的前导空格检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如果两者都不存在,则假定结果为正。读入下一个字符,直到到达下一个非数字字符或到达输入的结尾。字符串的其余部分将被忽略。将前面步骤读入的这

2022-02-25 12:48:04 116

原创 7. 整数反转

1.Description给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。2.Example示例 1:输入:x = 123输出:321示例 2:输入:x = -123输出:-321示例 3:输入:x = 120输出:21示例 4:输入:x = 0输出:03.My Code

2022-02-25 11:29:03 404

原创 6. Z 字形变换

1.Description将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 "PAYPALISHIRING" 行数为 3 时,排列如下:P A H NA P L S I I GY I R之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"PAHNAPLSIIGYIR"。请你实现这个将字符串进行指定行数变换的函数:string convert(string s, int numRows...

2022-02-25 11:06:53 57

原创 9. 回文数

1.Description给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。2.Example示例 1:输入:x = 121输出:true示例2:输入:x = -121输出:false解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入:x = 10输出:false解释:从右向左读, 为 01 。因此它不是一.

2022-02-24 22:24:08 182

原创 5. 最长回文子串(动归/中心扩展法)

1.Description给你一个字符串 s,找到 s 中最长的回文子串。2.Example示例 1:输入:s = "babad"输出:"bab"解释:"aba" 同样是符合题意的答案。示例 2:输入:s = "cbbd"输出:"bb"3.My code(Not AC,timeout)暴力求解class Solution {public: bool isCircle(string s){ for(int i=0;i<s.le

2022-02-24 21:51:38 424

原创 4. 寻找两个正序数组的中位数(找第K小数)

1.Description给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。算法的时间复杂度应该为 O(log (m+n)) 。2.Example示例 1:输入:nums1 = [1,3], nums2 = [2]输出:2.00000解释:合并数组 = [1,2,3] ,中位数 2示例 2:输入:nums1 = [1,2], nums2 = [3,4]输出:2.50000解释:合并数组

2022-02-24 18:53:24 719

原创 3. 无重复字符的最长子串

1.Description给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。2.Example示例 1:输入: s = "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: s = "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: s = "pwwkew"输出: 3解释: 因为无重复字符的最长子串是"wke",所以其长度为 3。..

2022-02-24 11:11:24 136

原创 2. 两数相加

1.Description给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。2.Example示例 1:输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.示例 2:输入:l1 = [0], l2 = [0]输出:[0]

2022-02-24 09:23:27 50

原创 1.两数之和

1.Description给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。2.Example示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例 2:

2022-02-22 20:15:29 38

原创 C++ Primer笔记17---chapter14 重载运算与类型转换

2021-07-28 20:36:34 63

原创 C++ Primer笔记16---chapter13 代码实例

2021-07-28 20:30:55 109

原创 C++ Primer笔记15---chapter13 拷贝控制2

2021-07-28 20:30:24 62

原创 C++ Primer笔记14---chapter13 拷贝控制1

1.当定义一个类时,会通过五种特殊的成员函数来控制此类型的对象的拷贝、移动、赋值和销毁:拷贝构造函数、拷贝赋值运算符、移动构造函数、移动赋值运算符和析构函数2.拷贝构造函数2.1 拷贝构造函数的第一个参数必须是自身类型的引用,此参数几乎总是一个const引用,且任何额外参数都有默认值与合成默认构造函数不同,即使我们定义了其他构造函数,编译器也会为我们合成一个拷贝构造函数class Sales_data{ public: Sales_data(); .

2021-07-28 20:28:56 91

原创 Cache替换算法

1. Cache替换算法常用替换算法有:• 先进先出FIFO (first-in-first-out)• 最近最少用LRU ( least-recently used)• 最不经常用LFU ( least-frequently used)• 随机替换算法(Random)等等 这里的替换策略和后面的虚拟存储器所用的替换策略类似,将是以后操 作系统课程的重要内容,本课程只做简单介绍。有兴趣的同学可以自学。https://...

2021-06-28 16:49:53 7478

原创 高速缓存概述

1. 存储器层次结构1.1 层次结构为了利用 寄存器、SRAM/ADRAM、硬盘的的优点,需要构建层次化的存储器结构每次传输的数据的最小单位是定义的,称为块由于程序访问的局部性特点(时间如循环,空间如数据),我们这种层次化结构是有效的2. Cache基本概述在CPU和主存之间设置一个快速小容量的存储器,其中总是存放最活跃 (被频繁访问)的程序和数据,由于程序访问的局部性特征,大多数情 况下,CPU能直接从这个高速缓存中取得指令和数据,而不必访问主存。2.1 Cach.

2021-06-26 20:24:26 1018

原创 磁盘存储器

图片及主要内容源自mooc讲义1.磁盘存储器的结构1.1 磁盘信息存储原理一个磁盘有若干盘片,每个盘片有两个盘面,每个盘面都有一个磁头,磁头可以移动,盘片不断的旋转1.2磁道和扇区若干同心圆称为磁道,每个磁道被划分为若干个扇区。1.3磁盘磁道格式2.磁盘驱动器以及操作2.1 磁盘驱动器结构2.2 读写流程基本的操作过程:寻道(移动磁头找到正确柱面/磁道)、旋转等待(找到正确扇区)、数据传输(转过一个扇区,可以忽略不计)注意程...

2021-06-26 16:11:48 1691

原创 主存储器组织

1.存储器基本概念1.1 存储器分类按照存取方式分类随机存取存储器(RAM):对地址直接译码,各个单元读写时间一样(地址译码时间相同,目前的DRAM芯片采用行缓冲,因而可能因为位置不同而使访问时间不同);如内存顺序存取存储器(SAM):从介质开始处进行读取;如磁带直接存取存储器(DAM):直接定位到读写数据块,读写数据块时按顺序进行;如磁盘相联存储器(CAM):按内容检索到存储位置进行读写;如快表...

2021-06-26 15:06:47 184

转载 C++中前置声明的应用与陷阱

前置声明的使用有一定C++开发经验的朋友可能会遇到这样的场景:两个类A与B是强耦合关系,类A要引用B的对象,类B也要引用类A的对象。好的,不难,我的第一直觉让我写出这样的代码:// A.h#include "B.h"class A{ B b;public: A(void); virtual ~A(void);};//A.cpp#include "A.h"A::A(void){}A::~A(void){}// B.h#inclu...

2021-06-24 21:16:38 79

原创 C++ Primer笔记13---chapter12&13中的代码实例

1.代码位置有如下三处的代码实例:1)P391 (一个单词转换的map)2)P404(定义StrBlob类)& P420(核查指针类)3)P430(文本查询程序)2.一个单词转换的map3.StrBlob &StrBlobPtr4.文本查询程序...

2021-06-24 21:07:22 270 2

原创 C++ Primer笔记12---chapter12 动态内存

1. 动态内存与智能指针在C++中,动态内存(堆)管理通过new和delete运算符实现;新的标准库还提供了两种智能指针类型来管理动态内存,其行为类似常规指针,重要区别在于负责自动释放所指的对象。新标准提供的两种智能指针区别在于管理底层指针的方式不同,都定义在头文件memory中shared_ptr 允许多个指针指向同一个对象 unique_ptr “独占”所指向的对象 weak_ptr 伴随类,一种弱引用,指向shared_ptr所管理的对象 2. sha.

2021-06-24 00:52:32 154 1

原创 考研小纪2---考研经历分享(华科计算机)

1.我的经历本科华科软件,毕业后在深圳某厂做了两年蓝牙,在2020年4月离职考试考研,在2021年4月上岸一志愿华科计算机专业。2.

2021-06-23 01:06:34 523 1

原创 C++ Primer笔记11---chapter11 关联容器

1.关联容器:关联容器支持高效的关键字查找和访问,主要是map和set,然后各自有multi、unordered及unordered_multi三个版本,也就是共八种容器。按关键字有序保存元素,头文件set 、map map 关联数组:<关键字,值> set 关键字即值,即只保存关键字的容器 multimap 关键字可重复出现的map multiset 关键字可重复出现的set 无序集合,头文件unordered_set、unordered_m

2021-06-22 22:47:50 183 2

原创 C++ Primer笔记10---chapter10 泛型算法

1.

2021-06-22 15:16:11 132 1

linux0.12源码+linux源码剖析0.12PDF+linux源码注释0.11PDF 百度云链接

最近学习了一下,共享给大家。里面是linux0.12源码+linux源码剖析0.12PDF+linux源码注释0.11PDF 的百度云链接。实际内容超出上传限制,大家理解一下,内容失效可百度云私信我。

2017-10-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除