自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(89)
  • 问答 (2)
  • 收藏
  • 关注

原创 EDAS系统中上传论文上传失败:The font ArialMT is not embedded in the file.

一、问题在EDAS系统中上传pdf论文,出现The font ArialMT is not embedded in the file.二、解决方法参考在PDF文件中嵌入字体使用Adobe Arcobat Pro DC工具来解决。依次点击:文件(左上角)-> 属性 -> 字体。如下图所示:发现ArialMT字体确实是没有(已嵌入子集)的信息。解决步骤,依次打开:工具(左上角)-> 印刷制作 -> 印前检查 -> PDF分析列出潜在问题 -> 分析

2021-08-31 11:17:55 1524

原创 1337. 矩阵中战斗力最弱的 K 行 - leetcode刷题(C++)

一、题目1337. 矩阵中战斗力最弱的 K 行二、分析暴力二分法 + 优先队列(最小堆)二分法节省计算军人数目的时间,时间复杂度从O(mn)O(mn)O(mn)降到O(mlog(n))O(mlog(n))O(mlog(n)),使用最小堆(C++提供STL priority_queue可以快速建立最小堆)对军人数目排序,最后出队。三、代码3.1 暴力class Solution {public: vector<int> kWeakestRows(vector<v

2021-08-01 17:32:59 415

原创 42. 接雨水 - leetcode刷题(C++)

一、题目42. 接雨水二、分析这篇文章不错,建议通篇学习:【动画模拟】一下就能读懂(单调栈)-厨子哥在此只记录一下容易错的点,每次出栈都要计算容量!vector<int> height = {4, 2, 0, 3, 2, 5}在3需要入栈时,要计算它与2构成的容器的宽和高,宽好说,因为栈内寸的是索引,高需要记录上一次的栈顶元素。在此就是需要记录0,这样才知道本容器的高为min(3-0,2-0)=2。三、代码class Solution {public: int

2021-07-18 17:03:12 254

原创 面试题 10.02. 变位词组 - leetcode(C++)

一、题目面试题 10.02. 变位词组二、分析这个词呀,非常有意思。下面来记录下自己的解题思路:其实打眼一看,这个题可以用hash来解决,于是乎,二话不说我定义了一个 unordered_map<int,vector<string>>,这个hash的key代表是:字母编码成的整数,因为字母就26个,一个int可以表示32位,这样一个int就可以表达单词中的字母有无,有则该位为1,无则加勉(无则为0啊啊啊);hash的value代表拥用相同字母的这些单词的数组。["eat

2021-07-18 15:50:27 227 2

原创 53. 最大子序和 - Leetcode刷题(C++)

一、题目53. 最大子序和剑指 Offer 42. 连续子数组的最大和二、分析要求O(n)O(n)O(n)的时间复杂度,所以没办法采用暴力求解,首先考虑动态规划。dp[i]dp[i]dp[i]: 定义为到num[i]num[i]num[i]的最大子序和那么当遍历到第i个元素时,可以选择继续之前的序列,或者重新开始序列...

2021-07-17 16:55:30 91

原创 pssh安装和用法 linux

https://www.cnblogs.com/kle-cola/p/13864674.htmlhttps://www.jianshu.com/p/a384c5ad92b7

2021-07-16 11:32:58 267

原创 python matplotlib绘制多图

参考:https://www.cnblogs.com/atanisi/p/8530693.html其中有一个例子# -*- coding: utf-8 -*-import numpy as npimport matplotlib.pyplot as pltx = np.linspace(0,10)y = np.linspace(0,10)z = np.sin(x/3)**2*98fig = plt.figure()ax = fig.add_subplot(111)ax.plot(x,

2021-07-07 10:55:03 437

转载 关于linux写文件之后Flush

https://www.cnblogs.com/kungf/p/11995054.html

2021-07-06 14:25:38 1541

原创 Linux修改文件权限和所有者

记录两篇博客。linux修改文件所有者和文件所在组Linux命令:修改文件权限命令chmod、chgrp、chown详解

2021-06-29 09:54:42 387

原创 Linux open

1

2021-06-25 15:12:19 143

原创 YML配置文件

一、推荐学习网站YAML 入门教程-菜鸟教程YAML 语言教程-阮一峰二、实例右侧对应的json格式:JS-YAML demo

2021-06-21 17:30:48 143

原创 wget用于服务器之间文件传输

两台服务器之间传递文件,可以使用http server,参考文章:python开启http服务传输文件.在需要提供链接的server (ip: 11.111.111.111) 中运行以下命令:python -m SimpleHTTPServer 8080(port自定义)访问:wget 11.238.150.234:8080/filename...

2021-06-21 16:57:59 2148

原创 Docker使用常见问题

一、无法将镜像push到Docker Hub目前我的docker有三个images:我想把wch/ubuntu推送到我的docker账户中,于是使用push命令:docker push wch/ubuntu:dev---- 显示如下 -----The push refers to repository [docker.io/wch/ubuntu]bd19e9a6c2b8: Preparingedefbcfd02e5: Preparingdenied: requested access to

2021-06-21 16:53:09 322

原创 安装ubuntu工具记录(Linux-Ubuntu)

一、lsb_releaseUbuntu Docker想查看一下ubuntu版本,显示如下:bash: lsb_release: command not found----------# apt-get install lsb_releaseReading package lists... DoneBuilding dependency treeReading state information... DoneE: Unable to locate package lsb_release解

2021-06-21 16:27:27 221

原创 1143. 最长公共子序列 - leetcode刷题(C++)

一、题目1143. 最长公共子序列二、分析该题采用动态规划比较合适,在这记录一下[Leetcode-负雪明烛]的题解:动态规划是有套路的: - 单个数组或者字符串要用动态规划时,可以把动态规划 dp[i] 定义为 nums[0:i] 中想要求的结果; - 当两个数组或者字符串要用动态规划时,可以把动态规划定义成两维的 dp[i][j] ,其含义是在 A[0:i] 与 B[0:j] 之间匹配得到的想要的结果。状态定义dp[i][j] 表示 text1[0:i] 和 text2[0:j] 的

2021-04-03 17:10:44 198

原创 1006. 笨阶乘 - leetcode刷题(C++)

一、题目1006. 笨阶乘二、分析常规做法,当成一个循环表达式,每4步为一个周期。那么采用栈记录每个乘除运算后的结果,最后通过遍历栈将栈内元素加起来。10 * 9 / 8 + 7 - 6 * 5 / 4 + 3 - 2 * 1 = 12--------以10为例---栈空间变化(左侧为栈底)---------10:109: 90 // 10出栈,10*9入栈8: 11 // 90出栈,90/8入栈(11)7: 11 7 // 直接入栈76: 11 7 -6 /

2021-04-01 15:50:00 113

原创 78. 子集,90. 子集 II - leetcode刷题(C++)

一、题目78. 子集90. 子集 II二、分析78. 子集本题可以采用递归回溯的算法。但是这个题与全排列不相同,因为其结果是保序的。输入:nums = [1,2,3]输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]需要一个begin_mark来标记递归时开始的数组位置。每次深度递归的时候,开始位置为当前索引+1。那么递归的终止条件是什么?当记录的数组大小等于预期的长度,那么这里预期的长度有0 ~ nums.size(),所以可以加一层循环来

2021-03-31 17:04:33 94

原创 25. K 个一组翻转链表,206. 反转链表,92. 反转链表 II - leetcode刷题

一、题目25. K 个一组翻转链表二、分析这个看似很难,但是化繁为简之后,一切就“拨开云雾见天日”了。拆分成子问题:给定一个头尾,

2021-03-30 21:17:54 88

原创 61. 旋转链表 - leetcode刷题(C++)

一、题目61. 旋转链表二、分析说是循环旋转,但其实本质上是将尾部的k % ListLength个元素(右侧元素)移到链表开头,与左侧元素重新构成新链表。先计算 ListLength,并使用 tail 指针记录链表尾部;计算左侧该保留多少节点;从左侧开始移动指针到分界处;交换指针指向。[1,2,3,4,5], k = 7head -> 1, tail -> 5,左侧剩余 ListLength - k % ListLength = 5 - 7 % 5= 3个节点,移动p,

2021-03-27 11:10:52 113

原创 456. 132 模式 - leetcode刷题(C++)

一、题目456. 132 模式二、分析到目前为止,博主还是没有非常深刻的理解这个题的做法,未能领悟其原理。如果错误之处,敬请指正!从后往前遍历是因为找one是简单的,首先使用栈记录 3。如果遍历过程中,当前元素一直小于栈顶元素,说明他就是目前最大的值,也就是3,那么不断更新2,使其是3右侧的,小于3的最大值,最后3入栈。// 保证了2一定在3后边。找到比2小的,就是1,则存在132。三、代码class Solution {public: bool find132pattern(ve

2021-03-24 22:08:27 108

原创 105. 从前序与中序遍历序列构造二叉树 _ leetcode刷题(C++)

一、题目105. 从前序与中序遍历序列构造二叉树剑指 Offer 07. 重建二叉树106. 从中序与后序遍历序列构造二叉树二、分析首先明确,如果给定一个二叉树的中序遍历+前序遍历,或者中序遍历+后序遍历,能够还原出一个二叉树。树分为三部分:根、左子树、右子树。所以可以拆分成子问题,那么通过递归的方式来解决就顺其自然的了。前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]通过前序遍历找根,找到根节点后,通过中序遍历划分左右子树

2021-03-24 21:24:50 90

原创 239. 滑动窗口最大值 - leetcode刷题(C++)

一、题目239. 滑动窗口最大值剑指 Offer 59 - I. 滑动窗口的最大值二、分析采用双端单调递减队列,保证队列中从大到小的顺序,为了方便,队列中只存储数组下标。当队头元素超出窗口,则队友元素出队。当新元素比队尾元素大,循环出队,保持队列的单调减。nums = [1,3,-1,-3,5,3,6,7], k = 3滑动窗口的位置 队列--------------- -----[1 3 -1] -3 5 3

2021-03-23 16:55:14 76

原创 442. 数组中重复的数据 - leetcode刷题(C++)

一、题目442. 数组中重复的数据二、分析重点:其中1 ≤ a[i] ≤ n (n为数组长度)。也就是说,可以将数组元素值,充当下标!利用这一点,可以将 nums[nums[i]]nums[nums[i]]nums[nums[i]] 置为一个特殊的值,然后当遍历到相同元素时,如果发现nums[nums[i]]nums[nums[i]]nums[nums[i]]已经被置为特殊值,就说明此元素(下标)重复了。但是还需要注意一点,特殊值的选取,要保证数组值还能使用。4 3 2 2如果将num[num

2021-03-22 23:04:24 101

原创 17. 电话号码的字母组合- leetcode刷题(C++)

一、题目17. 电话号码的字母组合二、分析画出来以下结构后,直接采取DFS遍历。终止条件为path长度 = 电话号码长度。三、代码class Solution {private: vector<string> res; string path;public: vector<string> letterCombinations(string digits) { if(digits == "") return vector<s

2021-03-21 16:48:17 74

原创 73. 矩阵置零 - leetcode刷题(C++)

一、题目73. 矩阵置零二、分析可以采用两个集合,分别记录某一行/某一列是否存在0元素。这种比直接设置两个数组要优化一丢丢。[[1,1,1], [1,0,1], [1,1,1]]set<int> rowzero; // {1},第1行有0set<int> colzero; // {1},第1列有0这种情况最坏的空间复杂度还是O(m+n)O(m+n)O(m+n)。如果第一行和第一列都没有0,如上边例子,那可以用第一行和第一列记录该列或该行有没有0。注:要另外

2021-03-21 10:22:29 101

原创 Kafka - 面试相关整理

https://blog.csdn.net/qq_28900249/article/details/90346599https://blog.csdn.net/ifenggege/article/details/84963664为什么读写速度快:https://zhuanlan.zhihu.com/p/147054382

2021-03-20 17:09:08 60

原创 阿里巴巴3.19日笔试题

1.n个人参加一个促销活动,每个人手里有个数字啊 a[i],如果某个人手里的数字是平方数(4,9,16…),则他中奖!现有一种修改券,可以让人们手中的数字 +1 或者 -1,每个人可以用多张修改券。想要保证n/2的人中奖,最少要准备多少张修改券?题目测试集保证 n 为偶数。示例:n = 4;a[] = {4, 7, 12, 13};答案:2解析:第一个人不用券,第二个人需要两张券改为9,第三个人和第四个人都需要3张券,分别改为9和16.只需要n/2个人获奖,所以最少花费2张券。2

2021-03-20 17:05:14 262

原创 面试问题汇总-数据库篇

一、基础知识https://www.nowcoder.com/tutorial/93/60c2f308109c4a7d8089a710b9ba1dab二、

2021-03-20 16:42:35 62

原创 面试问题汇总-算法&数据结构篇

一、排序算法https://www.zhihu.com/people/developer1024

2021-03-20 15:50:46 49

原创 面试问题汇总-操作系统篇

内存扩充、分配与回收、虚拟内存、页面置换https://blog.csdn.net/MOKEXFDGH/article/details/90408794

2021-03-20 15:44:46 58

原创 150. 逆波兰表达式求值 - leetcode刷题(C++)

一、题目150. 逆波兰表达式求值二、代码class Solution {public: int evalRPN(vector<string>& tokens) { stack<int> stk; int n = tokens.size(); for (int i = 0; i < n; i++) { string token = tokens[i]; if

2021-03-20 11:16:34 67

原创 92. 反转链表 II -leetcode刷题(C++)

一、题目92. 反转链表 II二、分析做法比较傻瓜式。。。。所以存储空间比较大。首先在头尾各加上一个虚假头尾,防止出现left=1和right=n的情况。使用两个标记记录需要反转的链接的两侧链表。然后使用两个指针一步一步的进行逆序。最后再把虚假尾 去掉。看了大家的解法,也是要加一个虚假头,但是翻转时采用删除节点的方式,不知道这种是否满足要求。按理说,不允许交换值,也不应该删除节点那。三、代码class Solution {public: ListNode* reverseBe

2021-03-18 20:47:10 77

原创 200. 岛屿数量- leetcode刷题(C++)

一、题目200. 岛屿数量二、分析图搜索问题,采用深度优先遍历。遇到一个1,即陆地,就先将其置为已查找状态,然后往四周寻找陆地。grid = [ [1, 1, 1, 1, 0], [1, 1, 0, 1, 0], [1, 1, 0, 0, 0], [0, 0, 0, 1, 1]]遍历数组:grid[0][0] = 1,则陆地数目+1.然后深度优先遍历,找与之相邻的陆地,并在找到后置为“已查找状态”,比如以2标注。......grid = [ [2, 2, 2, 2,

2021-03-17 16:22:00 131

原创 15. 三数之和,16. 最接近的三数之和,18. 四数之和 - leetcode 刷题(C++)

一、题目15. 三数之和二、分析这个题与两数之和类似,可以采用双指针法,但是需要先排序。这样快排的时间复杂度是O(n⋅logn)O(n·logn)O(n⋅logn),遍历第一个数时间复杂度为O(n)O(n)O(n),双指针找两数和问题时间复杂度为O(n)O(n)O(n),所以总体的时间复杂度是O(n2+n⋅longn)=O(n2)O(n^2+n·longn)=O(n^2)O(n2+n⋅longn)=O(n2)。没有用到额外的辅助数组,所以空间负载度是O(1)O(1)O(1)。关键是如何去重:例如:

2021-03-17 14:51:18 82

原创 面试问题汇总-C++基础篇

C++11标准,C++11新特性https://www.cnblogs.com/feng-sc/p/5710724.html

2021-03-16 15:20:52 51

原创 21. 合并两个有序链表,23. 合并K个升序链表 - leetcode 刷题(C++)

一、题目21. 合并两个有序链表23. 合并K个升序链表二、分析设置两个指针,分别在了l1和l2中移动,最后处理剩余链表。首先将所有链表值存储到一个数组中,进行快排,最后再将数值移到一个链表中。三、代码2个链表class Solution {public: ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { if(l1 == nullptr) return l2; if(l2 == nu

2021-03-16 14:26:23 59

原创 54. 螺旋矩阵,59. 螺旋矩阵 II - leetcode刷题(C++)

一、题目54. 螺旋矩阵二、分析没什么技巧,细心细心!除了矩阵下标i, j之外,还要设置5个值:方向:direction, 0 和 1 分别表示 + - X方向,2 和 3 分别表示 + - Y方向。边界:左右边界 left 和 n, 每次沿 + X方向走到头,列数右边界 n 就要 -1,反之同理。上下边界 up 和 m,每次沿 + Y方向走到最上边,行数上边界 up 就要+1,反之同理。三、代码class Solution {public: vector<int>

2021-03-15 14:19:32 70

原创 面试问题汇总-计算机网络篇

一、TCP连接状态详解及TIME_WAIT过多的解决方法https://blog.csdn.net/liangzhao_jay/article/details/50546898?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_baidulandingword-0&spm=1001.2101.3001.4242二、TCP与UDP的不同接包处理方式https://www.cnblogs.com/thankgoodness/artic

2021-03-14 12:14:46 67

原创 19. 删除链表的倒数第 N 个结点,141. 环形链表 - leetcode刷题(C++)

一、题目19. 删除链表的倒数第 N 个结点141. 环形链表二、分析这2个题都可以采用快慢指针的方式解决。删除倒数第N个结点,可以设置两个指针,快指针在慢指针前边n个,直到快指针到达尾节点,那么满指针指向的节点,就是要删除的节点。设置两个快慢指针,快指针每次走两步,满指针每次走一步,如果有环,必定相遇。如果相遇之后,让满指针从头开始,快指针位置不变。此后,二者皆一次一步,再次相遇时,就是环的入口pos参考https://blog.csdn.net/lym940928/article/de

2021-03-13 21:04:53 64

原创 705. 设计哈希集合 - leetcode刷题(C++)

一、题目705. 设计哈希集合二、分析这个题,可以从两个维度考虑,节省时间 or 节省空间。如果想要极致的时间,可以用vector<bool>大小为10610^6106,表示每个数的存在与否。时间复杂度O(1)O(1)O(1),但是空间复杂度O(n)O(n)O(n)。对于这种大范围整数,可以采用bitmap来存储,以压缩存储空间。不了解的看这里:https://www.jianshu.com/p/6082a2f7df8e我这里采用类似的方式去做。如下:有一个vector大小为106

2021-03-13 17:35:37 124

空空如也

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

TA关注的人

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