自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 我在b站过考试周:计算机类期末救急网课汇总

肝一肝,说不定就满绩了呢

2020-12-07 20:10:09 2006

原创 我在b站上大学:计算机类优秀网课汇总【持续更新】

自己在学习过程中搜罗了一些优秀的计算机课程网课,在这里汇总分享软件工程软件工程导论 张海藩这门课课程质量不是很平稳,中间有一些课是另外一个老师讲的,逻辑并不很清楚,可以挑着看北京大学-软件工程(国家级精品课)课堂录播–孙艳春老师软件工程(国家精品课)-清华大学清北两家的自行选一个看吧hhhhh计算机网络韩立刚老师主讲 计算机网络第5版谢希仁编写 全集156集这位老师在授课前已经做了十年的网络工程师,讲课时会结合实际应用,就业党可以选择这个2019 王道考研 计算.

2020-10-12 23:18:10 25512 49

原创 C++ 二叉树的遍历 前序 中序 后序 递归&非递归 层次

#include <iostream>#include <string>#include <queue>#include <stack>#include <math.h>using namespace std;typedef int datatype;class Node {public: datatype val; Node* left; Node* right; Node(datatype val) { th.

2021-05-20 15:01:31 332

原创 Java 堆栈(Stack)的简单实现 数组方式 链表方式

Stack.javapackage LinearList.Stack;public abstract class Stack<T> { public abstract boolean empty(); public abstract T peek(); public abstract T pop(); public abstract void push(T obj); public abstract int search(T obj);

2021-05-15 15:21:00 352

原创 C++ 堆栈(Stack)实现 数组方式 链表方式 类模板

#include <iostream>#include <string.h>using namespace std;//抽象模板类 template <class T>class Stack {public: virtual void push(T const& obj) = 0; virtual void pop() = 0; virtual T top() const = 0; virtual bool empty() = 0; vi.

2021-05-15 13:53:10 478

原创 华为云 ModelArts 线性回归实验指南

1. 准备实验数据这里先使用一个入门级数据集,有条件可以使用 ModelArts 的官方数据集。我们用 UCI 大学公开的机器学习数据来跑线性回归。数据的下载地址在这里:http://archive.ics.uci.edu/ml/machine-learning-databases/00294/ 下载后的数据可以发现是一个压缩文件,解压后有一个 xlsx 文件,用 excel 打开,另存为 ccpp.csv,之后用这个 csv 格式的文件来运行线性回归。一定要先打开原文件再另存为 csv...

2021-05-13 22:36:35 914 1

原创 Leetcode 328. 奇偶链表

328. 奇偶链表解题思路双指针就完事儿了,记得先记录一下偶节点的头节点以便连接。时间复杂度 O(n),不需要额外空间。Java代码/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * .

2020-11-28 16:27:18 164

原创 Leetcode 203. 移除链表元素

203. 移除链表元素解题思路依然是双指针,添加一个哨兵节点以方便处理头指针处的数据。Java代码一开始写的时候不知道如何处理头节点被删除后的返回值,捣鼓了半天分支条件,如下所示:class Solution { public ListNode removeElements(ListNode head, int val) { ListNode guard = new ListNode(0); guard.next = head; .

2020-11-28 16:07:59 86

原创 Leetcode 206. 反转链表

206. 反转链表解题思路栈 由栈引申出递归Java代码/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public ListNode reverseList(ListNode head) .

2020-11-28 15:37:30 131

原创 Leetcode 19. 删除链表的倒数第N个节点

19. 删除链表的倒数第N个节点解题思路利用双指针,将快指针提前前进 n + 1 个节点,然后同时移动快慢指针。当快指针指向 null 时,慢指针恰好指向需要删除的节点的前一节点。注意需要设置哨兵节点,否则对于只有一个节点的链表,该算法无法处理。Java代码/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * .

2020-11-28 15:09:49 70

原创 Leetcode 160. 相交链表

160. 相交链表解题思路双指针定义两个指针分别指向两条链表的头节点,不断向后遍历。若遍历至末尾,则跳至另一条链表的头节点。如果两条链表相交,则两指针必定相遇。解释如下:假设 A 链表长为 a,B 链表长为 b,两链表公共部分长为 c相遇时,pa 指针走过的路程:a + (b - c);pb 指针走过的路程:b + (a - c)。两者相等。附上一篇直观的图解:图解相交链表Java代码/** * Definition for singly-linked li.

2020-11-27 22:48:30 185

原创 Leetcode 151. 翻转字符串里的单词

151. 翻转字符串里的单词C++ yes!istringstream yes!但是还是要用 Java 写(内鬼行为解题思路双指针,分别记录一个单词的开始和结尾,并添加至答案字符串。重复直至遍历完毕Java代码class Solution { public String reverseWords(String s) { s = s.trim(); String ans = ""; int i = s.length(..

2020-11-26 21:11:22 100

原创 Leetcode 14. 最长公共前缀

14. 最长公共前缀虽然官方给这道题划定的难度是“简单”,但这道题有很多解题方法,甚至相同的思路也有不同的实现方法,其时空复杂性也不同。解题思路如果采用正向思路,逐个匹配,会造成巨大的时空开支。因此,不妨设法用逆向思路实现。我们取答案字符串 ans = strs[0],将其分别与 strs 数组内所有字符串进行前缀比较。对于每次比较,使 ans 成为能够与当前字符串匹配前缀的最短子串,最终即可得到公共前缀。这份题解的示意图十分直观,推荐参考画解算法:14. 最长公共前缀...

2020-11-26 15:14:16 108

原创 Windows 10 1909升级后蓝牙音量无法调节的解决方法

微软,不愧是你1. win r,输入regedit,打开注册表2. 进入路径:计算机\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Bluetooth\Audio\AVRCP\CT3. 找到DisableAbsoluteVolume值,修改为1,如果没有,右键新建DWORD32位,建立对应值为14. 重启电脑, 即可...

2020-11-18 09:29:51 1209

原创 Leetcode 922. 按奇偶排序数组 II

922. 按奇偶排序数组 II解题思路我以为我用了双指针,结果实际上还是遍历法C++代码class Solution {public: vector<int> sortArrayByParityII(vector<int>& A) { int n = A.size(); vector<int> ans(n); int p = 0, q = 1; //分别对应奇偶指针 .

2020-11-12 11:09:35 107

转载 Windows 10 透明效果失效解决方案

如果你打开了设置里的 “透明效果”,但应用栏依然是 “实心” 的,并不是期待的漂亮的毛玻璃效果,这篇文章可能会帮到你。

2020-11-11 22:51:49 4753

原创 详解 error: reference to non-static member function must be called

来看一段重写的使用了 sort() 排序的代码class Solution {public: bool cmp(pair<int, int>a, pair<int, int>b) { return a.second < b.second; } vector<vector<int>> kClosest(vector<vector<int>>& points, int K) {

2020-11-09 09:45:19 663

原创 Leetcode 973. 最接近原点的 K 个点

973. 最接近原点的 K 个点解题思路很朴(fei)实(jin)的一种解法对于每一个点,使用 pair 存储存储其在原始数组中的下标和到原点的距离对 pair 排序,将排序前 K 位的元素对应的点存入答案容器C++代码class Solution {public: static bool cmp(pair<int, int>a, pair<int, int>b) { return a.second < b.second.

2020-11-09 09:14:07 106

原创 Leetcode 129. 求根到叶子节点数字之和

129. 求根到叶子节点数字之和解题思路递归,逐层向下遍历考虑到对于此二叉树的任意节点,数字为0~9,我们有这样的递归方法:每一层将上一层传入的数字 * 10,加上当前结点数字值后传入下一层。递归出口为当前节点为叶结点,返回计数值。Java代码/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * Tr.

2020-10-29 10:09:27 141 1

原创 Leetcode 1207. 独一无二的出现次数

1207. 独一无二的出现次数解题思路对数组排序,用双指针记录每个元素出现的次数,存入容器对容器排序,比较两两元素是否相等C++代码class Solution {public: bool uniqueOccurrences(vector<int>& arr) { if (arr.size() < 2) return true; sort(begin(arr), end(arr)); vector.

2020-10-28 13:30:05 97

原创 Leetcode 26. 删除排序数组中的重复项

26. 删除排序数组中的重复项解题思路考虑到数组是有序的,故重复的元素一定是相邻的使用双指针,慢指针指向当前遍历得到的不重复元素应该处于的位置,快指针遍历寻找下一个不重复元素图源:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/solution/shuang-zhi-zhen-shan-chu-zhong-fu-xiang-dai-you-hu/Java代码class Solut.

2020-10-27 10:48:19 109

原创 Leetcode 144. 二叉树的前序遍历

144. 二叉树的前序遍历解题思路递归; 栈。C++代码/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(.

2020-10-27 10:29:12 133

原创 Leetcode 1365. 有多少小于当前数字的数字

1365. 有多少小于当前数字的数字一开始想得可复杂了,复制一下整个数组,给复制的数组排序,然后再把结果存到一个哈希表里,再把哈希表的数据映射到答案数组...看了题解学了一下标准的计数法解题思路考虑到对于所有的数字,都小于100,故定义一个cnt数组存储这些数组出现的次数,其大小为101; 从cnt[1]开始,对cnt数组进行累加操作,得到对于每个数字 i (对应nums内的元素),其前面数字出现的次数; 将结果写入答案数组ans[ ],由于此时cnt[ ]数组内每个元素存储的是从0到 i

2020-10-26 14:42:55 144

原创 LC 剑指 Offer 09. 用两个栈实现队列

题目链接:剑指 Offer 09. 用两个栈实现队列字节面试这题没做出来,丢人解题思路想象有两个装乒乓球的盒子,要取出最下面那个就只能把所有的倒到另一个空盒子里本题同解C++代码class CQueue {private: stack<int> sa; stack<int> sb;public: CQueue() { } void appendTail(int value) { s.

2020-10-24 10:31:01 111

原创 LeetCode 20. 有效的括号

class Solution {public: //判断左右括号是否配对 bool match(char a, char b) { if (a == '(' && b == ')' || a == '[' && b == ']' || a == '{' && b == '}') return true; return false; .

2020-10-17 21:14:25 93

原创 LeetCode 52. N皇后 II

这一周要准备字节的面试,所以只贴代码,面试完之后补充完整class Solution {public: void setZero(vector<vector<int>>& board, int layer, int col, int n) { for (int i = 0; i < n; i++) { board[layer][i] = 0; board[i][col] = 0;

2020-10-17 21:13:14 121

原创 LeetCode 977. 有序数组的平方

题目链接:977. 有序数组的平方2020.10.16第一次解答:解题思路容器遍历并平方,排序即可C++代码class Solution {public: vector<int> sortedSquares(vector<int>& A) { for (auto& i : A) i *= i; sort(begin(A), end(A)); return A; }};..

2020-10-16 09:57:58 72

原创 LeetCode 118. 杨辉三角

题目链接:118. 杨辉三角2020.10.15第一次解答:解题思路其实三角形的排布会影响思考,我们不妨依次按阶梯的样式列出原杨辉三角11 11 2 11 3 3 11 4 6 4 1......不难发现一个规律,下一层第i个元素(末尾元素除外),其实是由上一次第i个元素和第i-1个元素相加得到的根据这个规律,可以写出如下代码:C++代码class Solution {public: vector<vector&...

2020-10-15 22:57:06 68

原创 LeetCode 326. 3的幂

题目链接:326. 3的幂2020.10.15第一次解答:我是憨批...根据上一道题的逆向思维,想到逆向生成3的幂验证了,结果,我给挨个存容器里了...时空巨大浪费...羞愧解题思路根据逆向思维,对基数1不断乘3。如果等于n,则返回true;若已经大于n还未相等,说明n不是3的幂C++代码class Solution {public: bool isPowerOfThree(int n) { int a = 1; while (n.

2020-10-15 19:22:07 56

原创 LeetCode 204. 计数质数

题目链接:204. 计数质数2020.10.15第一次解答:解题思路暴力判断,只是这个时间就很难看...一个数,若是从2到其平方根都无法整除它,则它是质数C++代码class Solution {public: bool isPrime(int n) { int tmp = sqrt(n); for (int i = 2; i <= tmp; i++) { if (n % i == 0) retu.

2020-10-15 16:22:32 80

原创 LeetCode 412. Fizz Buzz

题目链接:412. Fizz Buzz2020.10.15 第一次解答解题思路模拟法,遍历就完事儿了。下次试试用散列表C++代码class Solution {public: vector<string> fizzBuzz(int n) { vector<string> ans; for (int i = 1; i <= n; i++) { if (!(i % 15)) ans.e.

2020-10-15 15:39:15 69

原创 LeetCode 155. 最小栈

题目链接:155. 最小栈2020.10.15第一次解答:解题思路个人以为实现一个最小栈就不能用STL的栈,于是定义了一个链表结构体写的栈...一看题解,嗯?还能这样?但是用自定义链表的速度就很快哈哈哈哈哈C++代码class MinStack {private: int min; struct node { int val; node* pre; }; node* cur;public: /** i.

2020-10-15 15:29:21 62

原创 LeetCode 116. 填充每个节点的下一个右侧节点指针

题目链接:116. 填充每个节点的下一个右侧节点指针2020.10.15第一次解答:解题思路依然是中序遍历,采用一个辅助队列存储每一层的结点,依次连接即可C++代码/*// Definition for a Node.class Node {public: int val; Node* left; Node* right; Node* next; Node() : val(0), left(NULL), right(NULL), ..

2020-10-15 13:36:03 75

原创 LeetCode 384. 打乱数组

题目链接:384. 打乱数组2020.10.14第一次解答:解题思路暴力破解法:(洗牌不会)在Solution内增加成员vector<int> nums,用于保存原始数组对于reset()函数,直接返回保存的原始数组对于shuffle()函数,复制一个原始数组,使用rand()随机将元素复制到结果数组中C++代码class Solution {private: vector<int> nums;public: Solutio.

2020-10-14 15:53:57 140

原创 LeetCode 198. 打家劫舍

题目链接:198. 打家劫舍2020.10.14第一次解答:羞愧,只知道dp[i] = max{ dp[i - 2] + nums[i], dp[i - 1] },原理是啥不知道看完人家题解代码再看看自己的,地铁老人看手机.jpg解题思路动态规划,公式如上贴一个自己很喜欢的题解:图解动态规划的解题四步骤(C++/Java/Python)C++代码class Solution {public: int rob(vector<int>& nu.

2020-10-14 15:26:39 101

原创 LeetCode 1002. 查找常用字符

题目链接:1002. 查找常用字符2020.10.14第一次解答:解题思路有点要用哈希表的意思,但是想了想用数组就可以满足题意要求了个人最开始的想法是,为每一个字符串都开辟一个记录数组,记录其每个字母出现的次数,最后各取最小值但是又觉得这样做的话空间好浪费哦,还要再找出最小值,又要浪费时间于是想到优化方案,只需要两个数组。一个 cur[26] 记录当前字符串每个字母出现次数,一个 backup[26] 记录历史每个字母出现的最小次数。最后根据 backup 将字母写回 ans 容器即

2020-10-14 14:32:13 137

原创 LeetCode 53. 最大子序和

题目链接:53. 最大子序和2020.10.13第一次解答:解题思路一不留神自己用了贪心,看了人题解才意识到,后知后觉遍历容器,累加计算sum。如果sum < 0,则重新从下一个元素累加计算。过程中若有sum > max,更新max = sumC++代码class Solution {public: int maxSubArray(vector<int>& nums) { int max = INT_MIN, sum .

2020-10-13 15:15:07 74

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

题目链接:LC 121. 买卖股票的最佳时机2020.10.13第一次解答:解题思路DP不太会...参考评论区思路和代码后初步形成自己的认知max = max{第i天以前的最大收益,第i天的价格 - 第i天以前的最小价格}这样我们就有了dp的基本公式,依次写出代码C++代码class Solution {public: int maxProfit(vector<int>& prices) { if(prices.size...

2020-10-13 14:40:05 90

原创 LeetCode 70. 爬楼梯

题目链接:LC 70. 爬楼梯2020.10.13第一次解答:解题思路典型的动态规划,套用斐波那契数列即可注意,直接套用会导致栈空间爆炸(时间复杂度O(n²))。个人解法是开辟辅助数组记录重复数据,使数据得到复用,从而降低时间复杂度为O(n)(只需计算n个值)C++代码class Solution { int m[1000];public: int climbStairs(int n) { if(n <= 2) return n; .

2020-10-13 10:26:35 88

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

题目链接:LC 24. 两两交换链表中的节点2020.10.13第一次解答:菜鸡用迭代怎么都搞不出来,有幸在评论区发现https://lyl0724.github.io/2020/01/25/1/这篇博客后豁然开朗解题思路使用递归实现。不需要纠结于每一层递归要做什么,因为递归本身就是对每一层采取相同的操作,所以我们只需要明确我们单词要完成的操作即可。递归两大件:递归出口,递归调用。递归出口:到最后了没得继续递归了。递归调用:由于本题是两两交换结点,故两个结点为一组。在这种情况

2020-10-13 09:39:36 134

空空如也

空空如也

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

TA关注的人

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