自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 LeetCode刷题日记 416. 分割等和子集

题目给出一个数组,数组中包含一些正整数,问能够将这个数组分成两个子集,使得这两个子集相等。首先一上来的想法是将数列中所有的数和求出,然后看数组中能不能将其中的某些数组成总和的一半。这里需要用到动态规划的思想。...

2020-10-11 13:05:45 471

原创 LeetCode刷日日记 5. 最长回文子串

第一次纯自己debug写出的medium,用的中心扩散法。没有力气写解释了,注释写了很多。这道题还可以用动态规划,但我现在还不是很熟练,也许以后可以更新一下。代码如下:class Solution {public: string longestPalindrome(string s) { int len = s.length(); //记录字符串长度 if(len == 1) return s; //如果字符串中只有一个字符,则返回原本字符

2020-10-10 00:21:36 99

原创 LeetCode刷题日记 20. 有效的括号

第一次做栈相关的题目,还不是很熟悉栈的操作。所以看完题目就直接看了标准答案,答案用的栈+哈希表。先把答案贴上,顺便复习以下unordered_map的操作。class Solution {public: bool isValid(string s) { int n = s.size(); if (n % 2 == 1) { return false; } unordered_map<char, c

2020-10-09 11:32:38 1944 1

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

题目给出一个数组,数组中每项包含一个字符串,要求找出字符串数组中的最长公共前缀。代码如下:class Solution {public: string longestCommonPrefix(vector<string>& strs) { int len = strs.size(); //获取总字符串数量 int minlength = INT_MIN; //用于记录最短字符串长度,防止数组越界 string answer;

2020-10-08 22:36:19 123

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

题目太长了,有点复杂,我直接复制过来吧。罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做II,即为两个并列的 1。12 写做XII,即为X+II。 27 写做XXVII...

2020-10-08 21:32:28 118

原创 Ubuntu 18.04 ROS melodic rqt_joint_trajectory_controller在Plugins->RobotTools菜单中无法显示解决办法

首先确保ROS中已经安装了rqt_joint_trajectory_controller的pkg。输入一下代码:sudo apt-get install ros-melodic-rqt-joint-trajectory-controller ros-melodic-control-msgs ros-melodic-controller-manager-msgs ros-melodic-rospy ros-melodic-rqt-gui ros-melodic-rqt-gui-py ros-melodi

2020-10-08 19:28:38 1902

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

这题是我第一道一遍写出的题目,每一次进步都值得庆贺。不过事实上最近确实每天都在被supervised learning毒打。题目给出一个数组,数组中包含一串字符串,要求在不使用额外数组的情况下,原地将数组中字符串的顺序反转。第一个想到的是用swap()函数,然后将数组中对称部分反转。对称的情况下奇数个数与偶数个数需要分开考虑。代码如下:class Solution {public: void reverseString(vector<char>& s) {

2020-10-08 08:04:55 96

原创 LeetCode刷图日记 9. 回文数

题目给出一个数字,要求检查它是否是回文数。第一想法是先讲数字保存到一段列表当中,然后检查列表的长度,根据长度的奇偶数来进行分类。检查数组中互相对称的值是否全部相等,如果全部相等,则为回文数,如果不等,则不为回文数。代码如下:class Solution {public: bool isPalindrome(int x) { if( x < 0) return false; //若x为奇数,则必定不为回文数 vector<int> temp

2020-10-07 12:14:16 84

原创 LeetCode刷题日记 56. 合并区间

第一次完全靠自己debug写出的medium题,大概花了一个半小时。公司面试数据结构算法大概需要40分钟写出两道medium,自己离这个距离相差还很远,希望能一直努力一直进步。题目给出一个区间的集合,要求合并所有重叠的区间,返回最后不重叠的区间。这道题主要有两个点让我在写代码是遇到困难:1. 写之前在考虑如果后面的区间完全包含前面的区间应该如何处理,实际上先使用sort(intervals.begin(), intervals.end())就可以处理这一问题。2. 在建立答案数组的时候无法.

2020-10-07 10:49:59 121

原创 LeetCode刷题日记 75. 颜色分类

今天是10月7日星期三,开学的第三天,昨天学习压力一下子大了很多,写leetcode的题就有一些囫囵吞枣,也没有写日记,以后无比要改正。今天比较幸运,每日一题给的比较简单,一个起泡算法就解决了。题目如下,一个数组中包含0,1,2三种数字,数组中的数字顺序是无序的,要求写一段程序将0,1,2从小到大重新排序。代码如下:class Solution {public: void sortColors(vector<int>& nums) { int len

2020-10-07 08:27:40 112

原创 LeetCode刷题日记 剑指 Offer 03. 数组中重复的数字

今天的每日一题需要用到哈希表,之前每次看到哈希表的题都是跳过的,既然这次躲不开了,就学习了一下哈希表。学习没有很深入,先描述一下我对哈希表使用的理解。C++ 中, 使用 unordered_map<int,bool> map; 来建立一个哈希表,其中第一个int表示哈希表key值的数字形式,用于记录他的存储位置,bool型为存储位置中存储的数字。这道题给出一个数组,其中包含若干个数字,要求检查数组中是否存在随机的数。若存在,则返回随机的这个数字。这里,可以建立一个哈希表,数组中的数字为k

2020-10-05 08:07:36 95

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

题目给出一个链表,给出一个整数n,要求返回删除了倒数第n个节点的链表。这道题可以使用快慢指针法,让fast先向后移n个节点,然后让快慢指针同时向后移,直到快指针达到最后一个节点。此时,慢指针指向的下一个节点及为需要删除的节点,将其删除,代码如下:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val

2020-10-04 11:55:53 105

原创 LeetCode刷题日记 2. 两数相加

题目给出两个链表,两个分别展示两个以逆序形式表示的十进制数,要求返回一个链表,以逆序形式表示这两个十进制数的和。这道题主要难点有两个,一个是当两个数位数不同的情况如何考虑,另一个是当末尾还需进位的时候需要再加一。根据条件,我们创造第三个链表head作为两个链表的和,代码如下:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNo

2020-10-04 11:21:01 92

原创 LeetCode刷题日记 746. 使用最小花费爬楼梯

这又是一道动态规划的题,与计算上楼梯的方法数类似。这一次题目给出一个数组,数组中每个数代表一级楼梯,而其数的值代表上该楼梯所虚花费的体力,要求得出上楼梯所虚花费的最小值。首先我们通过cost.length()得到级数n,f(n)为代表上n级楼梯所需要的体力数。当楼梯有两级时,我们需要比较第一级与第二级哪个楼梯耗费的体力更少,故能得到方程:当楼梯有三级时,我们可以得到以下公式:由此我们可以得出状态转移方程:class Solution {public: int mi

2020-10-03 08:46:31 86

原创 LeetCode刷题日记 392. 判断子序列

题目给出一个短字符串s和一个长字符串t,要求判断s是否为t的子序列。子序列的定义为,母序列在删去一些字符后,在不改变顺序的情况下,可以变得与子序列完全一致。首先的想法是生成一个s下标,赋值为0,在长字符串中寻找第一个下标的值,如果能找到,则下标向后移动一位。如果全能找到,则会退出循环,下标与s长度相等。如果不能找到,则说明s不是t的子序列,此时下标小于s的长度。代码如下:class Solution {public: bool isSubsequence(string s, string t

2020-10-02 20:16:11 143

原创 LeetCode刷题日记 198. 打家劫舍

题目给出一个数组,数组中每个数代表一个房屋,其数值代表房屋中的金钱数。小偷不能偷相邻的房屋,求小偷一夜之间能偷窃到的最高金额为多少。这里可以采用动态规划的思想。当只有一间房屋时,无需进行比较,小偷会直接偷这间屋子。而当有两件房屋时,小偷要在第一间与第二间之间选择金钱更多的房间。故,可列出如下方程:如果有第三间房屋时,小偷可以选择偷第一间和第三间,或者选择不偷第三间而去偷第二间。此时的小偷出现了两种选择,即是否偷当前这个房屋,故可以列出如下状态转移方程:通过以上方程,我们可以得到如下代码:

2020-10-02 11:40:49 138

原创 LeetCode刷题日记 70. 爬楼梯

今天学习了动态规划,其本质是将一个大问题拆成几个子问题,分别求解这些子问题,从而推断出大问题的解。思想上有一些类似递归,但时间复杂度上比递归更胜一筹。以下是第一道动态规划题:给出一个正整数n,为当前需要爬的楼梯数,我们可以爬一节或者爬两节,求一共有多少种不同的方法可以爬上楼梯。这里我们设f(n) 为不同方法的个数,因为每一次我们都可以选择爬一节或者爬两节,所以当前爬n节楼梯总方法数可以表示为爬n-1节楼梯方法数和爬n-2节楼梯方法数的和,表示为:由此,通过动态规划,我们可以写出以下代码:c

2020-10-02 10:29:50 120 1

原创 LeetCode刷题日记 771. 宝石与石头

今天开始每天把每日一题写了。这道题为字符串处理。题目给定字符串J和字符串S,其中字符串J说明为宝石的字符类型,S说明我们手中所有的石头,要求求出手中宝石的数量。string处理方式与set比较相似,先尝试一下像set一样来处理:class Solution {public: int numJewelsInStones(string J, string S) { int Jlength = J.length(); int Slength = S.length()

2020-10-02 08:10:18 52

原创 LeetCode刷题日记 剑指 Offer 53 - II. 0~n-1中缺失的数字

题目给出一个长度为n-1的递增排序数组,数组中有且只有一个数字不在该数组中,求这个数字。根据观察,可以通过检查数组中的每个数字是否与其下标相等,若相等,则说明缺失的数字在后面,若不相等,则说明缺失的数字在前面。另外最后考虑数组中没有缺失数字的情况,返回数组最后一个数字加一。代码如下:class Solution {public: int missingNumber(vector<int>& nums) { int size = nums.size();

2020-10-02 00:07:28 113

原创 LeetCode刷题日记 剑指 Offer 53 - I. 在排序数组中查找数字 I

题目给出一个有序数组,要求统计目标数字在数组中出现的次数。最开始尝试使用暴力解法会超时,故使用二分法,代码如下:class Solution {public: int search(vector<int>& nums, int target) { if(nums.empty())return 0; //判断数组为空时返回0 int size = nums.size(); //得到数组大小 int left = 0;//二分法

2020-10-01 23:26:05 99

原创 LeetCode刷题日记 剑指 Offer 29. 顺时针打印矩阵

之前几天在看吴恩达,LeetCode停了几天,今天重新开始,希望之后每天能抽出时间写几道。这道题目是剑指offer上的第29题,顺势正打印矩阵。题目给出一个由数组构成的矩阵,要求顺时针顺序从里到外打印出每一个数字,代码如下:class Solution {public: vector<int> spiralOrder(vector<vector<int>>& matrix) { if (matrix.size() == 0 ||

2020-10-01 22:13:25 81

空空如也

空空如也

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

TA关注的人

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