自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

DUT_LYH

行百里 半九十

  • 博客(355)
  • 资源 (2)
  • 论坛 (3)
  • 收藏
  • 关注

转载 根据数据规模选择不同复杂度算法 & 取组合数的复杂度分析

按照一秒处理10810^{8}108数据规模计算复杂度数量级最大规模O(NlogN)>> 10^20很大O(N^1/2)10^1210^14O(N)10^610^7O(NlogN)10^510^6O(N^2)10002500O(N^3)100500O(N^4)5050O(2^N)2020O(N!)910re:https://blog.csdn.net/weixin_34268843

2021-03-31 17:35:44 15

原创 在线工具收集

grammrly:Grammar Checkhttps://www.grammarly.com/

2020-05-07 22:05:13 237

原创 假期作业目录

(二选一)poj1636 Prison rearrangement(连通分量+背包)poj1088 滑雪(带有备忘的递归|拓扑排序)(二选一)poj2366poj3233(二选一)poj1753 Flip Gamepoj3714 Raid(二选一)poj3269 Building A New Barn(中位数)poj3579 Median(二分)哈希(二选一)[M]380...

2020-01-27 11:21:57 1117 2

原创 leetcode 面试题 08.09. 括号

卡特兰数百度百科图片来自百度侵权联系删除想象你站在A点,想着(n,n)点前进,只能在对角线下方走,即向右走的步数要大于等于向上走的步数然后每次可以选择向右向上走这样遍历完所有可能的路径就能得到答案class Solution {public: vector<string>ret; int n=0; vector<string> generateParenthesis(int n) { this->n = n;

2021-04-12 21:34:47 7

原创 POJ1664 放苹果【dp:整数无序拆分】

poj1664dp[i][j]表示i个苹果考虑放进j个盘子里面考虑的意思就是不一定都会用到这j个盘子if(i>=j){ dp[i][j] = dp[i-j][j] + dp[i][j-1]; }else{ dp[i][j] = dp[i][i];}#include<iostream>#include <string.h>using namespace std;typedef long long ll;#define debug

2021-04-11 22:22:20 10

原创 leetcode 1123. 最深叶节点的最近公共祖先【dfs】

图片来自leetcode,侵权请联系删除题解参考如图,我们需要找一个节点,这个节点之下的子树能覆盖所有的最后一层的叶子首先就是想到,如果最后一层叶子都在根的左边,那么我们就要在左边找如果两边都有的话,直接就是根节。可以通过判断左右子树的高度来进行判断调用堆栈分析如图,在判断树的高度的时候,使用深度优先搜索当搜索到6 7 4 0 8的时候,发现左右子树高度都是零,符合要求递归依次向上,7 4 的父亲节点2满足, 0 8 的父节点1满足对于5来说右子树的高度更高,递归返回的时候已经得到了两.

2021-04-10 21:28:53 5

原创 二叉树层次遍历,使用nullptr分割层次

/** * 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(x), left(nullptr), right(nullptr) {} *

2021-04-09 14:38:50 13

原创 leetcode 153、154. 寻找旋转排序数组中的最小值【二分查找:利用有序的一半缩小范围】

思路和leetcode 33. 搜索旋转排序数组一样class Solution {public: int findMin(vector<int>& a) { int n = a.size(); int l =0; int r = n-1; int ret = INT_MAX; while(l<=r){ int m = (l+r)>>1;

2021-04-09 14:25:34 10

原创 leetcode 33. 搜索旋转排序数组【二分查找:利用有序的一边缩小范围】

我们还是想向之前那样查找,因为只翻折了一次如果a[l] < a[m],那么[l,m]就是有序的如果啊a[m] < a[r] 那么[m,r]就是有序的每次缩小完二分的区间 取一个mid,总有一半是有序的,这样就可以判断taget在不在有序的区间里面,从而缩小一半空间class Solution {public: int search(vector<int>& a, int t) { int n = a.size(); ..

2021-04-07 16:13:46 15

原创 leetcode 1342. 将数字变成 0 的操作次数

题解class Solution {public: int numberOfSteps(int n) { int ret = 0; while(n){ if(n&1){ ret++; } ret++; n>>=1; } return max(0,ret-1); }};.

2021-04-07 14:18:06 9

原创 Leetcode 877. 石子游戏【dp | 数学证明】

class Solution {public: bool stoneGame(vector<int>& p) { //return true; int n = p.size(); vector< vector<bool> >dp(n,vector<bool>(n)); for(int i=0;i<n;i++){ dp[i][i] =

2021-04-07 14:03:32 12

原创 leetcode 589. N 叉树的前序遍历【非递归】

#define debug(x) cout<<#x<<": "<<(x)<<endl;class Solution {public: vector<int> preorder(Node* r) { stack<Node*>st; vector<int>ret; if(r != nullptr){ st.push(r); }

2021-04-06 20:23:12 8

原创 leetcode 440. 字典序的第K小数字【字典树】

题解参考注意会数据溢出,特判或者采用long long#define debug(x) cout<<#x<<": "<<(x)<<endl;using ll = long long;class Solution {public: int findKthNumber(ll n, ll k) { auto findp = [&]( ll p){ ll ne = p+1; l

2021-04-06 20:05:35 9

原创 Linux 源码在线阅读

https://elixir.bootlin.com/linux/latest/source理解静态函数调用过程自行编译内核内核加载到Qemu,动态debug从开机到加载出shell的过程加强理解

2021-04-06 15:15:38 13

原创 Linux 常见命令收集

为什么重复造轮子仅作为自己学习的笔记,记录自己哪些命令没有覆盖到想系统学习命令 建议查找官方教程查看进程ps -ups -aux

2021-04-06 15:12:34 10

原创 leetcode 1402. 做菜顺序【贪心】

从大到小排序如 5 0 -1 -8 -912 13 2 14 3 2 15 4 3 2 1每次在之前的基础上把前i个累加和加一遍然后加上第i个遍历所有取最大即可class Solution {public: int maxSatisfaction(vector<int>& s) { int n = s.size(); auto cmp = [&](int a,int b){ r

2021-04-05 21:42:47 5

原创 面试题 16.26. 计算器【双栈 vs 直接求值】

双栈法#define debug(x) cout<<#x<<": "<<(x)<<endl;class Solution {public: int calculate(string s) { int i=0; int len = s.size(); auto isop = [&](char c){ if(c == '+' ||c

2021-04-05 21:01:58 7

原创 leetcode 316. 去除重复字母【单调栈 官方题解补充:为何要判断栈中是否有当前元素】

class Solution {public: string removeDuplicateLetters(string s) { vector<int> last(26,0); for(int i=0;i<s.size();i++){ last[s[i]-'a'] = i; } stack<char>st; string ret = "";

2021-04-05 15:33:14 12

原创 LeetCode 450. 删除二叉搜索树中的节点【非递归 & 直接修改指针不修改val】

如果是的节点p叶子直接删除,如果不是叶子把右子树挂在左子树最右边孩子的右边或者把左子树挂在右子树最左边的孩子的左边然后用p父亲per,p可能是父亲per的左孩子或者有孩子重新指向p的两个孩子重新构造的那个子树即可把p删除掉https://leetcode-cn.com/problems/delete-node-in-a-bst/solution/shan-chu-er-cha-sou-suo-shu-zhong-de-jie-dian-by-l/官方题解修改了节点的val值,但是操作简单.

2021-04-04 22:02:49 11

原创 leetcode 330. 按要求补齐数组 【贪心构造】

思路参考:https://leetcode-cn.com/problems/patching-array/solution/an-yao-qiu-bu-qi-shu-zu-tan-xin-suan-fa-b4bwr/当前集合可以覆盖[1,b],在当前集合上增加一个数字,使得这个区间可以覆盖到的数组最多,并且保证区间没有产生空隙#define debug(x) cout<<#x<<": "<<(x)<<endl;using ll = long lon

2021-04-02 22:37:47 24

原创 【学术会议笔记】EDA Workshop 2021 AI辅助EDA算法

https://mp.weixin.qq.com/s/ZQtf9w735LkZ4qgj4-ygtg

2021-04-02 15:54:08 28

原创 git常见命令

回到上一次commit之前的状态git checkout -- 文件名

2021-04-02 14:52:00 13

原创 EOJ Monthly 2021.3 Sponsored by TuSimple

D. 关于小方的爆款桌游还没面世就要夭折这回事没有首先想到题解中给的方法可以用n=2的情况稍微归纳一下猜一个结果https://acm.ecnu.edu.cn/contest/375/problem/D/#include <stdio.h>#include <iostream>using namespace std;int main(){ int n=0; int m=0; cin>>n>>m; if(m

2021-03-29 23:55:17 20

原创 window10 时间同步出错 超时

解决方法两个1 重启windows time服务我的电脑-右键-管理-服务-找到windows time 右键重启2 更改时间服务器可以尝试的时间服务器ip地址https://blog.csdn.net/jiangyangll/article/details/96759610

2021-03-23 19:37:00 22

原创 vscode sublime中 为文件夹和文件 添加右键打开方式

写一个reg文件运行,在注册表中添加项目https://blog.csdn.net/m0_37148591/article/details/101294311https://www.cnblogs.com/alinh/p/6588110.html自己去注册表中手动添加项目https://blog.csdn.net/qq_42717914/article/details/103037767...

2021-03-12 20:21:23 24

原创 C++11 给vector添加数组越界检查,并打印错误信息 = 继承stl的vector

#include <iostream>#include <functional>#include <vector>#include <algorithm>using namespace std;#define debug(x) cout<<#x<<": "<<(x)<<endl;template<typename T>class MyVec :public std::vector.

2021-03-11 19:49:42 29

原创 LeetCode 1239. 串联字符串的最大长度【递归&位运算】

二分递归使用位运算去判断可以不可以继续装下一个字符串更快一点#define debug(x) cout<<#x<<": "<<x<<endl;class Solution {public: vector<int> barr; vector<string> arr; int ret=-1; int maxLength(vector<string>& arr) { .

2021-03-09 14:51:20 23

原创 剑指 Offer 56 - II. 数组中数字出现的次数 II 【位运算】

统计32个bit位上1出现的次数,次数对三取余就是出现一次那个数字对应比特位的数class Solution {public: int singleNumber(vector<int>& n) { vector<int> c(32,0); for(int j=0;j<n.size();j++){ for(int i=0;i<=31;i++){ if( (n[j] &

2021-03-07 21:17:01 24

原创 leetcode 1411. 给 N x 3 网格图涂色的方案数 [阿里2021春招笔试题dp]

dp[i][j] 表示 第i+1行采用第j种方案染色的时候的方案种数dp[i]][j] = sum(dp[i-1][k])dp[i-1][k]表示 i行染色j与i-1染色为k方案不冲突n=1 时,只要12种方案n>1时可以从 n-1推过来#define debug(x) cout<<#x<<": "<<x<<endl;using ll = long long;ll mod = 1e9+7;class Solution {public.

2021-03-07 10:55:10 38

原创 leetcode 797. 所有可能的路径 [递归vs非递归]

递归class Solution {public: vector<vector<int>> ret; vector<vector<int>> g; vector<int> vi; vector<vector<int>> allPathsSourceTarget(vector<vector<int>>& g) { this->g

2021-03-06 21:48:10 18

原创 LeetCode 503. 下一个更大元素 II [单调栈]

按照降序的顺序将a数组的下标入栈当压栈的元素大于栈顶的元素是意为找到元素由于数组是循环的遍历一趟之后,栈如果不空,需要再遍历一趟class Solution {public: vector<int> nextGreaterElements(vector<int>& a) { stack<int> st; vector<int>ret(a.size(),-1); int n = a.s.

2021-03-06 14:16:06 15

原创 leetcode 4. 寻找两个正序数组的中位数[二分查找]

长度分别为m和n的两个序列从两个序列中各自画一条线一分为二将两个序列左边的个数相加,中位数就是找到(m+n+1)/2,奇数是左边多一个,偶数的时候一样多因为知道了总数,所有只在较短的数组进行二分查找即可较长的数组的切割位置就是确定的(因为两个序列总的长度固定)class Solution {public: double findMedianSortedArrays(vector<int>& a, vector<int>& b) { .

2021-03-05 15:25:39 30

原创 二分查找需要注意的地方:整形溢出、死循环

1. 整形溢出取m和n的中位数,中位数上取整使用mid = (m+n+1) / 2可以避开讨论m + n + 1可能导致整形溢出,可以换成等价写法m + (n-m+1)/2死循环int a[10];while(l<r){ m = (l+r)/2; if(){ l = m; }else{ r = m+1; }}当数组长度是2时,m和l的值会一直相等,之后死循环解决方法m = (l+r+1)/2...

2021-03-04 22:14:41 23

原创 vscode 配置leetcode 关闭成员函数提示

在面试的时候往往是没有函数代码的提示的,vscode安装完leecode的插件之后是有提示的,为了模拟真实的面试,我们需要关闭这些提示。设置(齿轮的图标)- 设置 - 文本编辑器 - 建议 - quick suggestons 在settings.json中编辑加入"editor.suggestOnTriggerCharacters": false记得保存效果没有了成员函数的代码提示...

2021-03-04 14:35:11 51

原创 leetcode1585. 检查字符串是否可以通过排序子字符串得到另一个字符串【官方题解补充】

思路s = "34521", t = "23415"官方题解写的很清楚了,容易想到 s到t,首先解决把2从s的倒数第二个位置移到最前面这样就容易想到影响其他的数字可能导致其他的序列无法转换,这样与原问题就不等价了可以这样想将s中的2先和5排序然后2和4排序然后2和3排序这样就可以做到保证345的顺序的基础上 把2移到了最前面在不改变问题等价性的前提下,问题的规模就变小了1这样进行下去,知道最后一个元素即可用10和队列依次存储10个数在s中出现的位置这样可以快速获所需数dig

2021-03-03 21:15:18 33 2

原创 计算机专业基础课程资料

计算机网络课件https://cloud.tsinghua.edu.cn/d/4b12b05d30dc435688c3/

2021-02-19 17:49:00 35

原创 C++使用shared_ptr(智能指针) 实现多态调用

#include <iostream>#include <vector>using namespace std;using LL = long long int;#define debug(x) cout<<#x<<": "<<(x)<<endl;#define deOut(x) cout<<#x<<": "<<(x)<<" ";#define de15lf(x) {cou

2021-02-04 22:27:54 55

原创 C++ 浮点数精度不足的处理

#include <iostream>using namespace std;using LL = long long int;#define debug(x) cout<<#x<<": "<<(x)<<endl;#define deOut(x) cout<<#x<<": "<<(x)<<" ";#define de15lf(x) {cout<<#x<<": ";

2021-02-04 21:57:13 67

原创 C++ lamda表达式做函数参数的两种方式

lamda表达式#include <iostream>#include<functional>using namespace std;#define debug(x) cout<<#x<<": "<<(x)<<endl;// 使用函数模板template<typename T>int cal(T add, int a, int b) { return add(a, b);}// 使用functi

2021-01-25 12:01:03 89

原创 机器学习复习笔记-华中科技大学

第二门有挂科风险的考试上午刚考完这门课程考核方式第一次改为考试所以没有复习资料还有一点记忆赶紧记录一下明年重修的时候就有复习材料了简答1. 朴素贝叶斯和感知机基本思想与异同2. 简述SVM3.分类和回归的异同4.硬约束的SVM和软约束的SVM在数据是线性可分的情形下结果有何异同判断最大似然估计与最大后验估计的都是以θ\thetaθ为随机变量牛顿法可以得到最优解、。。。其他的暂时想不起来了计算&证明1使用最大似然估计最大的参数aY=aX+ϵY = aX + \ep.

2021-01-05 18:55:05 142

大连理工大学单世民数据库笔记+考试题回顾.pdf

大连理工大学单世民数据库笔记+考试题回顾,笔记清晰,可用于数据库程序设计课程复习,特别是老师上课有笔记没来得及记下的。

2019-06-26

大连理工大学夏锋计算机网络b站网课笔记

大连理工大学软件学院夏锋计算机网络b站网课笔记

2019-04-27

DUT_LYH的留言板

发表于 2020-01-02 最后回复 2020-01-02

英语之于编程

发表于 2019-04-28 最后回复 2019-04-28

第一篇博客

发表于 2017-11-19 最后回复 2017-11-19

空空如也

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

TA关注的人 TA的粉丝

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