自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 资源 (4)
  • 收藏
  • 关注

原创 Python 字典对value进行排序

Python排序使用sorted函数进行,该函数有三个参数分别是iterable,key,reverse。(1)key使用lambda匿名函数取value进行排序

2021-06-07 15:43:56 340 1

原创 LeetCode刷题 2.两数相加

题目要求:给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807思路:我们同时遍历两个链表,逐位计算它们的和,...

2020-10-08 23:50:53 133

原创 LeetCode刷题 面试题39.数组中出现次数超过一半的数字

题目要求:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。分析:使用归并排序中分治思想,先将数组中数字递归划分,然后再合并进行排序同时统计逆序数。class Solution {public: int reverseCount = 0; int reversePairs(vector<int>& nums) { if(nums.empty())

2020-06-14 17:17:25 169

原创 LeetCode刷题 面试题53-I.在排序数组中查找数字 I

题目要求:统计一个数字在排序数组中出现的次数。分析:可以使用关联容器,时间复杂度是O(n),空间复杂度是O(1)int search(vector<int>& nums, int target) { unordered_map<int,int> um; for(int n:nums) { if(n == target) um[n]++; } ret

2020-06-14 17:09:00 124

原创 LeetCode刷题 136.只出现一次的数字

题目要求:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?分析:可以使用关联容器去记录每一个元素出现的次数,也可以使用set去记录,如果集合中不存在这个数,那么就加入;如果集合中存在这个数,那么就删除这个数,那么最后就剩下出现过一次的数字。这两种方法都不满足要求,我们可以使用异或的方法,一个数和0异或结果是这个数;一个数和自己异或的结果是0,所以最后的结果是出现一次的那个数

2020-06-14 17:07:40 104

原创 LeetCode刷题 面试题39.数组中出现次数超过一半的数字

题目要求:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。你可以假设数组是非空的,并且给定的数组总是存在多数元素。分析:可以使用unordered_map记录一个数字出现的次数,之后遍历容器寻找出现次数超过一半的数字。int majorityElement(vector<int>& nums) { int count = nums.size()/2; unordered_map<int,int> um; .

2020-06-11 17:13:07 129

原创 LeetCode刷题 面试题21.调整数组顺序使奇数位于偶数前面

题目要求:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。分析:题目要求将奇数放在前面,偶数放在后半部分,可以使用双向队列,奇数前插入,偶数后插入。vector<int> exchange(vector<int>& nums) { deque<int> result; int len = nums.size(); for(int i=0;i

2020-06-11 17:00:13 169

原创 LeetCode刷题 面试题04.二维数组中的查找

题目要求:在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。分析:查找问题,有特点是每一行都按照从左到右递增,每一列都按照从上到下递增,利用这个特性,可以从右上角开始查找,直到左下角。 bool findNumberIn2DArray(vector<vector<int>>& matrix, int target) {

2020-06-09 18:24:45 613

原创 Linux常考察的命令

前言这里不再写Linux最常用的命令,主要记录一个比较常考的完成某种功能的命令!1、找出指定端口被哪个进程占用-★★lsof -i:端口号 例如查看80端口被哪个进程所占用:lsof -i:802、命令行里重置一下网络-★service network restart3、查看一个动态变化的文件用什么?-★tail -n 10 test.log4、linux查找某个字母开头的进程并全部杀死-★杀死以字母a开头的进程为例:kill -9 $(pgrep '^a'

2020-05-29 18:44:02 1346

原创 牛客网SQL刷题 创建一个actor_name表

题目要求:对于如下表actor,其对应的数据为:actor_id first_name last_name last_update 1 PENELOPE GUINESS 2006-02-15 12:34:33 2 NICK WAHLBERG 2006-02-15 12:34:33 请你创建一个actor_name表,并且将actor表中的所有first_name以及last_name导入该表.actor_name表结构如下:.

2020-05-24 22:32:07 135

原创 牛客网SQL刷题 查找employees表

题目要求:查找employees表所有emp_no为奇数,且last_name不为Mary(注意大小写)的员工信息,并按照hire_date逆序排列(题目不能使用mod函数)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)

2020-05-23 23:13:03 342

原创 牛客网SQL刷题 获取所有部门中当前员工薪水最高的相关信息

题目要求:获取所有部门中当前(dept_emp.to_date = '9999-01-01')员工薪水最高的相关信息,给出dept_no, emp_no以及其对应的salaryCREATE 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_no`));

2020-05-23 23:07:06 172

原创 LeetCode刷题 19.删除链表的倒数第N个节点★

题目要求:给定一个链表,删除链表的倒数第n个节点,并且返回链表的头结点。说明:给定的n保证是有效的。分析:可以使用前面寻找倒数第K个节点的方法,但是找到之后还要找到倒数第K-1个节点;注意边界条件,删除的节点是头节点的时候还有只有一个节点的时候!class Solution {public: ListNode* removeNthFromEnd(ListNode* head, int n) { if(!head) return NU...

2020-05-23 18:38:12 137

原创 LeetCode刷题 328.奇偶链表

题目要求:给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。分析:将链表分为奇数链表和偶数链表,最后将偶数链表连接到奇数链表之后,注意边界条件。class Solution {public: ListNode* oddEvenList(ListNode* head) {

2020-05-23 17:29:11 193

原创 LeetCode刷题 110.平衡二叉树★

题目要求:给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点的左右两个子树的高度差的绝对值不超过1。分析:递归+递归,一个函数求结点的左右子树差值,另一个函数判断左右子树的深度;都要递归求取,每个结点都要判断是否是平衡的,每个结点都要求深度!class Solution {public: bool isBalanced(TreeNode* root) { if(!root) return tru.

2020-05-22 20:00:12 114

原创 LeetCode刷题 1.两数之和★

题目要求:给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。分析:这个题目中,没有说明数组中数据是有序的,所以不能使用双指针方法。方法1:BFvector<int> twoSum(vector<int>& nums, int target) { vector<int> res; ...

2020-05-22 17:01:56 99

原创 LeetCode刷题 面试题09.用两个栈实现队列

题目要求:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead操作返回 -1 )class CQueue {public: CQueue() { } void appendTail(int value) { s[0].push(value); } int d.

2020-05-13 23:29:54 124

原创 LeetCode刷题206.反转链表

题目要求:反转一个单链表。迭代方法:class Solution {public: ListNode* reverseList(ListNode* head) { if(head == NULL) return NULL; ListNode* pre = NULL; ListNode* cur = head; while(cur != NULL) { ListNode* n

2020-05-13 23:28:24 136

原创 LeetCode刷题 面试题02.07.链表相交

题目要求:给定两个(单向)链表,判定它们是否相交并返回交点。请注意相交的定义基于节点的引用,而不是基于节点的值。换句话说,如果一个链表的第k个节点与另一个链表的第j个节点是同一节点(引用完全相同),则这两个链表相交。分析:可以使用双指针,因为遍历的路径是相等的,如果有相交的话,会相遇!class Solution {public: ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) { if(he

2020-05-12 23:01:33 200

原创 LeetCode刷题 面试题22.链表中倒数第k个结点

题目要求:输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。分析:使用双指针,两个指针间隔k-2个结点。ListNode* getKthFromEnd(ListNode* head, int k) { if(head == NULL || k < 1) return

2020-05-12 22:57:35 132

原创 LeetCode刷题 141.环形链表-★

题目要求:给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。分析:使用快慢指针!如果相遇说明有环,如果没有相遇说明无环!bool hasCycle(ListNode *head) { ListNode* pfast = head; ListNode* pslow = head; while(pfast != NULL

2020-05-11 22:19:36 66

原创 LeetCode刷题 83.删除排序链表中的重复元素

题目要求:给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。迭代方法:ListNode* deleteDuplicates(ListNode* head) { if(head == NULL) return NULL; ListNode* ptr = head; while(ptr->next != NULL) { if(ptr->val == ptr->next-&gt

2020-05-11 22:16:59 153

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

题目要求:将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。分析:一般来说,在链表、二叉树中,使用递归程序会比较简单!因为两个链表已经有了内存,所有我们不需要再建立新节点,只需将原有结点顺序,重新连接就好了。分为四种情况:当l1为空时,直接返回l2;当l2为空也一样,直接返回l1;再比较值,递归处理就可以了!ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { if(l1 ==

2020-05-10 22:46:14 124

原创 LeetCode刷题 121.买卖股票的最佳时机

题目要求:给定一个数组,它的第i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票。分析:使用动态规划方法,先求出相隔两天的差值,假设前一天买股票,第二天卖可以赚的利润;如果利润大于零,继续求取最大利润,如果小于等于0,舍弃前面的,继续求取接下来的最大利润。方法1:int maxProfit(vector<int>& prices) { .

2020-05-10 22:42:26 110

原创 LeetCode刷题 面试题61.扑克牌中的顺子

题目要求:从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。限制:数组长度为 5数组的数取值为 [0, 13] .分析:使用排序的方法,在数组中除0外,只要出现重复的元素,肯定不能是顺子了!然后计算差值与0的个数进行比较!方法1:排序再求差值与零的个数比较class Solution {public: bool isStraight(ve.

2020-05-09 22:38:26 250

原创 LeetCode刷题 88.合并两个有序数组

题目要求:给你两个有序整数数组nums1 和 nums2,请你将 nums2 合并到nums1中,使 nums1 成为一个有序数组。说明:初始化nums1 和 nums2 的元素数量分别为m 和 n 。你可以假设nums1有足够的空间(空间大小大于或等于m + n)来保存 nums2 中的元素。class Solution {public: void merge(vector<int>& nums1, int m, vector<int...

2020-05-09 22:34:57 139 1

原创 LeetCode刷题 66.加一

题目要求:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。分析:思路比较清晰,和加法一个道理,就是满十进位。vector<int> plusOne(vector<int>& digits) { boo...

2020-05-07 21:39:17 76

原创 LeetCode刷题 35.搜索插入位置

题目要求:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。分析:先查找target在不在数组中,可以使用二分查找,时间复杂度为O(logn),如果不在数组中,在查找插入位置,时间复杂度为O(n)。class Solution {public: int searchInse...

2020-05-07 21:33:30 100

原创 LeetCode刷题 面试题03.数组中重复的数字

题目要求:找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。分析:因为这个数组中的数字是有范围明确说明的 在 0~n-1 的范围内,所以我们可以将数组的下标与数字一一对应去找重复的数字,思想其实还是排序!方法1:int...

2020-05-06 23:19:52 263

原创 LeetCode刷题 27.移除元素

题目要求:给你一个数组 nums和一个值 val,你需要 原地 移除所有数值等于val的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。分析:思路比较简单,而且题目要求空间复杂度,所有采用交换方法!注意:要特别注意边界条件!int removeEl...

2020-05-06 23:14:06 91

原创 LeetCode刷题 26.删除排序数组中的重复项-★

题目要求:给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。分析:要保证前面的元素没有重复的,我们可以使用双指针!只需判断,前一个元素,找到后一个与之不相等的元素交换!int removeDuplicates(vector<in...

2020-05-05 21:24:25 73

原创 LeetCode刷题 470.用Rand7()实现Rand10()

题目要求:已有方法rand7可生成 1 到 7 范围内的均匀随机整数,试写一个方法rand10生成 1 到 10 范围内的均匀随机整数。不要使用系统的Math.random()方法。分析:这题本质是一道概率题,因为题目中说明了已经 实现rand7,我们借用rand7实现rand10,1/10 = 1/5 * 1/2,首先取1/5,然后再取1/2.class Solutio...

2020-05-05 21:18:47 293

原创 LeetCode刷题 8.字符串转换整数

题目要求:请你来实现一个atoi函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下:如果第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字字符组合起来,形成一个有符号整数。假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成一个整数。该字符串在有效的整数部分之后也...

2020-05-04 21:15:56 105

原创 LeetCode刷题 05.替换空格

题目要求:请实现一个函数,把字符串s中的每个空格替换成"%20"。分析:这个题思路非常明确,先遍历空格数,然后从后往前复制!不多说直接上代码。string replaceSpace(string s) { //时间复杂度O(n) int space_count = 0; for(int i=0;i<s.size();i++) {...

2020-05-04 20:17:40 96

原创 LeetCode刷题 344.反转字符串

题目要求:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。分析:这道题思路很简单,方法的话,可以使用库函数reverse();也可以使用双指针,即对撞指针!//库函数void...

2020-05-03 22:29:45 215

原创 LeetCode刷题 69.x的平方根

题目要求:实现int sqrt(int x)函数。计算并返回x的平方根,其中x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。分析:可以使用库函数sqrt(); 也可以使用牛顿迭代法,具体的公式推到可以搜一下公式,还是很容易理解,大致就是解一个一元二次方程,使用求导的方法。class Solution {public: int mySqr...

2020-05-03 22:25:20 108

原创 LeetCode刷题 58.最后一个单词的长度

题目要求:给定一个仅包含大小写字母和空格' '的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。如果不存在最后一个单词,请返回 0。说明:一个单词是指仅由字母组成、不包含任何空格字符的 最大子字符串。分析:因为我们知道每个单词之间使用空格分隔的,我们只需在最后一个单词后面加上一个空格,然后从单词后面上前面遍历,再次遇到空格时,...

2020-05-02 22:35:32 133

原创 LeetCode刷题 28.实现strStr()

题目要求:实现strStr()函数。给定一个haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。分析:一种方法可以使用string 函数中find()函数,还有就是使用暴力方法,去遍历整个字符串!方法一://使用库函数:string中的find函数!...

2020-05-02 22:32:13 200

原创 LeetCode刷题 14.最长公共前缀

题目要求:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。说明:所有输入只包含小写字母a-z。示例1:输入: ["flower","flow","flight"]输出: "fl"示例2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。分析:如果使用暴力匹配的话,太过于复杂...

2020-05-01 18:38:45 129

原创 LeetCode刷题 13.罗马数字转整数

题目要求:罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做II,即为两个...

2020-05-01 18:31:48 123

cat_neg_pos.7z

这个程序是针对INRIA原始数据集的HOG+SVM自己训练模型的行人检测程序,传上来供大家参考!

2019-11-01

学术会议模板.zip

这里是我搜集的一些学术会议海报模板,大家可以卸载使用!

2019-10-11

数字图像处理的MATLAB实现 (书)-配套图片和程序

数字图像处理的MATLAB实现配套资料,里面有很多树上用的图片,还有源码程序。为大家提供方便下载!

2019-03-13

随意VS版本+opencv3.4.1+opencv_contrib3.4.1 环境傻瓜式配置(无需下载opencv,只需这个压缩包即可)

网络上很多配置教程,但是基本都不全,有的虽说可以使用opencv,但只能使用部分功能,可以说是其配置是失败的。这个资料也是我配置不下5次才完整的弄到的资料,希望可以帮助大家,顺带赚个积分。

2019-03-11

空空如也

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

TA关注的人

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