自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 leetcode C++ 45. 跳跃游戏 II 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 你的目标是使用最少的跳跃次数到达数组的最后

一、思路: 1、深度搜索,不剪枝,只能通过71多个 2、深度搜索,map存储每一个pos的count,凡是后面超过这个count,停止搜索,剪枝,最后两个也通过不了 3、O(n), 通过当前节点找到下下节点的最远位置,保存最远的下一个节点位置,继续这样遍历保存的这个节点,知道下下节点达到末尾。二、代码:class Solution {public:...

2020-04-19 22:35:55 1699

原创 leetcode C++ 6. Z 字形变换 将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。

一、思路: 对于Z字型的第i行数据为:let temp1=(row-i-1)*2 temp2=i*2 i i+temp1 i+temp1+temp2 1+temp1*2+temp2 1+temp1*2+2*temp ...二、C++代码:class Solution {public: string convert(string s,...

2020-04-19 02:33:24 829

原创 leetcode C++ 48. 旋转图像 给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。

一、思路: 某一个的转化后的路径变化:(i,j)-->(j,n-1-i)-->(n-1-i,n-1-j)-->(i,j), 所以转变一个,就等于转变4个,n为偶数数时,遍历n*n/4;n为奇数时,遍历(n*n-1)/4,因为中心不会变化二、代码:class Solution {public: void rotate(vector<vector...

2020-04-18 20:16:39 900

原创 leetcode C++ 链表 24. 两两交换链表中的节点 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换

一、思路: 在头结点前加一个哑结点,遍历,判断是否当前节点的后两个节点是否为空,为空交换一次,最后返回哑结点的next二、C++:class Solution {public: ListNode* swapPairs(ListNode* head) { ListNode *dummpy = new ListNode(-1); dummpy->next = h...

2020-04-18 13:11:57 571

原创 C++ leetcode 19. 删除链表的倒数第N个节点 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。

一、思路: 遍历一遍存储节点到vector数组中,然后利用数组指向倒数第n个,将倒数n-1的节点的next指向倒数n的next二、代码:class Solution {public: ListNode* removeNthFromEnd(ListNode* head, int n) { vector<ListNode*>nodeLists; ListN...

2020-04-18 00:56:03 432

原创 leetCode C++ 49. 字母异位词分组 给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。

一、思路: 对每一个字符串排序,然后将这个排序的字符串加到map里面,对于每一个新遍历的字符串就和map比较是否相等。 最开始用map,会出现超时,于是采用hash实现结构的unordered_map就不会超时,在50%的效率左右二、代码:class Solution {public: vector<vector<string>> ...

2020-04-18 00:00:02 855

原创 leetcode C++ 46. 全排列 给定一个 没有重复 数字的序列,返回其所有可能的全排列。

一、思路: 回溯算法,和其它回溯算法区别还蛮大的,这道题遍历我当时还真没想到,是借鉴别人的思路二、C++代码:class Solution {public: vector<vector<int>>res; vector<vector<int>> permute(vector<int>& nums)...

2020-04-17 22:27:36 1143

原创 leetcode C++ 23. 合并K个排序链表 合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。

一、思路: 第一种:求出每一个链表的最小值,然后把这个节点放到合并的结果链表里面,这个链表指向next 第二种:优先级队列,头结点放到优先级队列里面,将top的那一个放到合并的链表里面,再讲top指向next,push到队列里面二、代码 第一种思路:class Solution {public: ListNode *insert(ListNo...

2020-04-16 16:09:06 404

原创 leetcode C++ 42. 接雨水 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 上面是由数组 [0,1,0,2,1,0,1,3,2,

一、思路: 左边最高和右边最高求一个最小值减去当前高度,就等于当前能装的水的量二、代码:class Solution {public: int getMaxRight(vector<int>& height, int index) { int maxRight = 0; for (; index < height.size(); index...

2020-04-16 14:06:04 1454

原创 leetcode C++ 39. 组合总和 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 c

一、思路: DFS深度搜索,直到所有元素都被遍历。另外如果一组结果的求和大于target,剪枝返回class Solution {public: vector<vector<int>> combinationSum(vector<int>& candidates, int target) { vector<vec...

2020-04-16 12:51:52 1054

原创 leetcode C++ 28. 实现 strStr() 实现 strStr() 函数。 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 need

一、C++class Solution {public: int strStr(string haystack, string needle) { if (needle.size() == 0) return 0; int res = -1; for (int i = 0; i < haystack.size(); i++) { for (int j =...

2020-04-16 11:52:41 403

原创 leetcode C++ 25. K 个一组翻转链表 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。

一、思路: 先实现两个节点翻转,再实现k个节点翻转,最后实现一组一组翻转二、C++代码:class Solution {public: ListNode* swap(ListNode *f1, ListNode *f2, int count) { ListNode *nowNode = f2; ListNode *f3, *l1, *l2 = NULL, *...

2020-04-16 02:44:58 824

原创 leetcode 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭

一、C++代码class Solution {public: bool isValid(string s) { stack<char> st; for (int i = 0; i < s.size(); i++) { char ch = s[i]; switch (ch) { case '(': st.push(ch); ...

2020-04-15 16:41:45 906

原创 C++ leetcode 21. 合并两个有序链表 将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

一、C++ 代码class Solution {public: ListNode* insert(ListNode *res, int val) { if (res->val == INT_MAX) { res->val = val; return res; } else { res->next = new ListNode(val); ...

2020-04-15 16:00:54 1308

原创 leetcode 38. 外观数列 「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。前五项如下

1、思路: 从1开始遍历,求出后面每一个转化后的数。依次求下一个。string countAndSay(int n) { string res = "1"; for (int i = 2; i <= n; i++) { string tempStr; for (int j = 0; j < res.size(); j++) { char ch = r...

2020-04-15 14:55:28 502

原创 C++ leetcode 26. 删除排序数组中的重复项 给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。

一、思路: nowPos当前第几个没有重复的数,count指向第nowPos+1个重复数的位置二、C++int removeDuplicates(vector<int>& nums) { if (nums.size() < 2) return nums.size(); int count = 1; int nowPos = 0; whil...

2020-04-15 02:32:12 294

原创 leetcode C++ 13. 罗马数字转整数 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。

一、C++代码:int romanToInt(string s) { int res = 0; map<char, int> mapRoman = { {'I',1},{'V',5},{'X',10},{'L',50},{'C',100},{'D',500},{'M',1000} }; while (s.size() > 0) { char temp = s.b...

2020-04-14 17:48:20 561

原创 leetcode C++ 2. 两数相加 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数

一、C++ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { ListNode *resList = new ListNode(-1); resList->val = -1; ListNode *nowNode = resList; int carry = 0; while (l1 != NULL) { int nu...

2020-04-14 16:54:47 722

原创 leetcode C++ 4. 寻找两个有序数组的中位数 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log

一、概述: 这道题思路其实蛮简单的,就是边界太难考虑了,所以一直没能通过,写了好长的代码考虑边界,然后看到一个大神写的代码:https://leetcode-cn.com/problems/median-of-two-sorted-arrays/solution/c-er-fen-cha-zhao-by-da-li-wang/。简直是叹为天人,敬佩不已,发现自己走的路还很长。...

2020-04-14 15:36:25 539

原创 C++ leetcode 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外

一、C++代码:int removeElement(vector<int>& nums, int val) { if (nums.size() == 0) return 0; int right = nums.size() - 1; for (int i = 0; i <= right; i++) { while (right >= 0 &amp...

2020-04-13 13:35:44 538

原创 C++ leetcode 12. 整数转罗马数字 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。

一、C++代码:string intToRoman(int num) { map<int, char> mapRoman = { {1,'I'},{5,'V'},{10,'X'},{50,'L'},{100,'C'}, {500,'D'},{1000,'M'} }; int temp = 0; int type; string res; for (int i = 3;...

2020-04-13 12:06:24 514

原创 C++ leetCode 判断一个整数是否为回文数 9. 回文数 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

一、思路: 遍历到中间位置,如果第i个和第size-i-1个不相等,将不为回文数,反之,为回文数bool isPalindrome(int x) { string strX = to_string(x); for (int i = 0; i < strX.size() / 2; i++) if (strX[i] != strX[strX.size() - 1 - ...

2020-04-12 14:30:10 246

原创 C++ ,leetcode 43. 字符串相乘 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式

一、思路: 字符串逆序,然后遍历两个逆序后的字符串,然后对应的字符相乘,i+j等于它的位数。string multiply(string num1, string num2) { reverseStr(num1); reverseStr(num2); string res; int carry = 0; for (int i = 0; i < num1.size...

2020-04-12 14:12:50 569

原创 C++ leetcode 5. 最长回文子串 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。

一、思路 从第二个遍历到最后一个,然后每次遍历从中间往两边找,这样可以找到所有的回文串string longestPalindrome(string s) { int left; int right; int maxLength = 1; int maxLeft = 0; for (int i = 1; i < s.size(); i++) { left = ...

2020-04-12 02:02:33 921

原创 C++ leetCode 1. 两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个

一、思路: 讲数据用map存储,加快查询速度vector<int> twoSum(vector<int>& nums, int target) { map<int, int> numsMap; for (int i = 0; i < nums.size(); i++) { numsMap.insert(pair<...

2020-04-12 00:21:07 1626

原创 leetCode C++ 二分查找 35. 搜索插入位置 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

一、C++int binarySearch(vector<int>& nums, int &target, int left, int right) { int mid = (left + right) / 2; if (nums[mid] == target) return mid; else if (mid == left) { if (ta...

2020-04-10 20:36:57 520

原创 C++ leetcode 7. 整数反转 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

一、思路 转化成string, 有负号先去掉负号,然后从string的尾部开始遍历,每一个字符放到第一个另一个字符串中去。int reverse(int x) { if (x == 0 ) return 0; bool isPositive = x > 0 ? true : false; string xStr = to_string(x); if (!...

2020-04-10 19:11:11 530

原创 C++ leetCode 37. 解数独 编写一个程序,通过已填充的空格来解决数独问题。

bool check(int &n, char ch, vector<vector<char>> &board) { int row = n / 9; int col = n % 9; for (int i = 0; i < 9; i++) { if (board[row][i] == ch || board[i][col] == ch)...

2020-04-10 18:03:26 321

原创 C++ leetcode 17. 电话号码的字母组合 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。

一、解题思路 用map可以加快查询速度,DFS深度搜索,DFS是一种很常见的对于多循环或者n!的好的搜索算法.二、代码:C++void init(map<char, string> &mapDigit){ mapDigit.insert(pair<char, string>('2', "abc")); mapDigit.insert...

2020-04-09 11:23:04 863

原创 C++ leetcode 面试题64. 求1+2+…+n

一、C++ int sumNums(int n) { int sum=0; for(int i=1;i<=n;i++) sum+=i; return sum; }

2020-04-08 13:41:38 211

原创 C++ leetcode14 最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""

1.C++ bool static cmp(const string &a, const string &b) { return a.length() < b.length(); } string longestCommonPrefix(vector<string>& strs) { sort(...

2020-04-08 13:00:52 314

原创 C++ leetCode 15 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。

1、C++vector<vector<int>> threeSum(vector<int>& nums) { vector<vector<int>>res; sort(nums.begin(), nums.end()); int n = nums.size(); for (int i = 0; i <...

2020-04-07 23:57:14 2404

原创 java 41. 缺失的第一个正数: 给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。

1、java public int firstMissingPositive(int[] nums) { Set<Integer> setNums=new HashSet<Integer>(); for(int num:nums){ if(num>0&&!setNums.contain...

2020-04-05 14:43:57 1606

原创 java 把依赖打到一个整体jar包里运行(maven)

一、环境 maven 3.6.1 jdk 1.8二、运行打成整体的jar包: java -jar [包名]二、maven 中pom.xml插件: <plugin> <artifactId>maven-compiler-plugin</artifactId> ...

2020-04-04 21:55:58 1516

原创 java C++ 实现 leetcode 第三题 3. 无重复字符的最长子串 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。

一、C++实现 int lengthOfLongestSubstring(string s) { if (s.length() <= 1) return s.length(); int res = 1, start = 0, end = 0; for (; start < s.length(...

2020-04-04 19:39:33 609

原创 GRPC java实现demo

一、环境 jdk8+maven+IDEA二、 我的理解+官方文档 1、官方文档:https://codelabs.developers.google.com/codelabs/cloud-grpc-java/index.html#2 2、我的理解:grpc是利用.proto文件用相应的语言编译生成相应的代码,这样就能实现不同语言平台之间的调用。...

2020-04-01 23:30:26 1114

原创 C++实现矩阵加减乘求转置

一、需求如下:二、代码如下:#include<vector>#include<iostream>using namespace std;class Matrix {public: vector<vector<int>> oneMatrix; Matrix transposing(); Matrix operator+(co...

2020-02-23 11:11:24 2003

原创 python pandas爬取网页成绩表格,计算各个类别学分

一、以下是个人成绩表格二、下面是我的程序:# -- coding: utf-8 --import pandas as pdimport csvdef credit_points_sum(df,title): df.to_csv('E:\\scores_'+title+'.csv', encoding='utf_8_sig') # index=False,heade...

2019-08-30 20:56:15 1093

原创 c# winform datagridview改变表头标题的颜色(column header)

我一直改变不了,需要加:dataGridView1.EnableHeadersVisualStyles = false; dataGridView1.EnableHeadersVisualStyles = false; dataGridView1.ColumnHeadersDefaultCellStyle.BackColor = Color.Red;...

2019-06-03 13:25:01 7818 1

原创 c# winform做简单的折线图(VS2017)

结果展示:(折线图) (平滑的折线图)二、介绍       做折线图,雷达图等等都可以做出来,我讲解下如何制作表格。下面是绘制折线图和曲线图的代码,注释其中一个就会显示另一个。            //绘制折线图            chart1.Series["line1"].ChartType = SeriesChartType.Line;         ...

2019-01-09 19:17:58 20955 3

空空如也

空空如也

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

TA关注的人

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