- 博客(60)
- 收藏
- 关注
原创 C++11新特性
std::weak_ptr 是一种弱引用,它不拥有对象的所有权,不会增加对象的引用计数。相比于直接使用 std::unique_ptr 的构造函数,std::make_unique 将对象的创建和 std::unique_ptr 的初始化封装在一个函数调用中,避免了显式使用 new 操作符。std::shared_ptr 的循环引用问题:std::shared_ptr 的循环引用是指两个或多个对象通过 shared_ptr 互相持有对方,导致它们的引用计数无法归零,从而无法释放内存,产生内存泄漏。
2025-07-01 10:58:04
616
原创 vscode ssh远程服务端设置
本地下载vscode-server:https://update.code.visualstudio.com/commit:af28b32d7e553898b2a91af498b1fb666fdebe0c/server-linux-x64/stable。nano ~/.ssh/authorized_keys # 编辑文件 --- 编辑文件内容,将公钥id_rsa.pub粘贴到文件中。mkdir -p ~/.ssh # 创建 .ssh 目录(如果不存在)
2025-05-27 21:46:22
905
原创 解决 GitHub 访问失败/缓慢的问题
遇到的问题:github有时可以打开,有时不行,或者很慢,怎么解决?就是把GitHub 服务器的地址直接写到 hosts 文件里,绕过 DNS 的解析。
2025-02-05 10:47:51
1178
原创 windows电脑-ubuntu,传输文件
FileZilla是一款免费的工具,是基于 FTP 协议进行文件互传的,在传输过程中我们的ubuntu是作为服务器, FileZilla 工具则是作为客户端。2.检查 /etc/vsftpd.conf 配置文件:sudo vi /etc/vsftpd.conf。然后检查下图 28 和 31 行的内容是否有被注释掉,如果前面有 “#” 号注释起来的话,就去掉即可。3.重启FTP服务:sudo /etc/init.d/vsftpd restart。FileZilla工具可以去官网下载即可,
2025-02-04 18:08:02
712
原创 设计模式
1. 单例设计模式单例模式,是一种常用的软件设计模式。应用该模式的类一个类只有一个实例。即一个类只有一个对象实例。具体实现(1)将构造方法私有化,使其不能在类的外部通过new关键字实例化该类对象。(2)在该类内部产生一个唯一的实例化对象,并且将其封装为private static类型。(3)定义一个静态方法返回这个唯一对象。实现一:饿汉式:该模式的特点是类一旦加载就创建一个...
2020-04-02 23:21:25
118
原创 优先级反转
任务调度有多种方法(算法)1. 罗宾环调度算法:Round-robin scheduling algorithm2. 基于优先级的调度算法:Priority-controlled scheduling algorithm任务调度的一种常见调度算法就是:根据优先级高低去调度,优先让高优先级的任务去执行。任务调度器,总是去激活某个(在所有任务中优先级是最高的),且处于就绪状态的任务,让...
2020-03-16 11:39:59
306
原创 shell脚本实践2:自定义rm命令
linux系统的rm命令太危险,一不小心就会删除掉系统文件。 写一个shell脚本来替换系统的rm命令,要求当删除一个文件或者目录时,都要做一个备份,然后再删除。1. 简单的实现:假设有一个大的分区/data/,每次删除文件或者目录之前,都要先在/data/下面创建一个隐藏目录,以日期/时间命名,比如/data/.201703271012/,然后把所有删除的文件同步到该目录下面,可以使用rsy...
2019-11-12 17:40:12
1341
原创 shell脚本实践1:截取字符串
请根据以下要求截取出字符串中的字符:http://www.aaa.com/root/123.htm1.取出www.aaa.com/root/123.htm2.取出123.htm3.取出http://www.aaa.com/root4.取出http:5.取出http://6.取出www.aaa.com/root/123.htm7.取出1238.取出123.htm...
2019-11-12 14:58:38
350
原创 shell脚本学习(三)
test1:for循环#!/bin/bashfor var in one two three fourdo echo "The number is $var"doneecho "Now show read values from file"file="place"for var in $(cat $file)do echo "Visit bea...
2019-11-01 14:16:24
519
原创 shell脚本学习(二):文件比较等操作
对应《Linux命令行与shell脚本编程大全》 -- 章节12.4.3test1:-d file :检查目录#!/bin/bashdir="/home//shell/dir"if [ -d $dir ]then echo "dir is exist" cd $dir lselse echo "dir is not...
2019-11-01 11:16:22
251
原创 shell脚本学习(一)
test:简单命令的组合#!/bin/bashdatewho结果:2019年 11月 01日 星期五 10:34:27 CSTtty1 2019-10-17 01:40 (:0)pts/2 2019-11-01 09:03 (10.4.205.170)test1:echo的使用#!/bin/bashecho The time and ...
2019-11-01 10:57:03
272
原创 Linux下vim编辑退出的命令(据说70%的程序员都不会)
很久以前,江湖中流传着一个神秘的问题:如何退出Vim编辑器?据说,很多人老死都没有退出Vim,也没有人知道答案。(太扎程序员的心了!!!)ESC进入“正常模式”,然后输入“:”,进入“命令模式”。此时屏幕的下方会出现一个冒号,你可以输入以下命令,并按“ENTER”执行::w,保存文件但不退出vi:w file,将修改另外保存到file中,不退出vi:w! 强制保存,不推出vi...
2019-11-01 09:26:30
222
原创 LeetCode:234. 回文链表
一、问题描述请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true二、解题思路将链表分为两段,并且把后面一段进行倒置,然后再比较前后两段是否相同即可。最简单的方法就是先计算链表的长度,然后将前面一半用头插法的办法进行倒置,最后再比较,但是由于需要的是一半这个特殊的位...
2019-09-24 17:05:20
108
原创 LeetCode:328. 奇偶链表
一、问题描述给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。示例 1:输入: 1->2->3->4->5->NULL输出: 1->3->...
2019-09-24 16:52:41
144
原创 LeetCode:138. 复制带随机指针的链表
一、问题描述给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。二、解题思路第一种:用hashmap,遍历链表然后把它存到 HashMap 中,val 作为 key,Node 作为 value。遍历第二遍链表,将之前生成的节点取出来,更新它们的 next 和 random 指针。查找复杂度为 O(1) ,这样可以把总时间复杂度降到 O(n) ,由于...
2019-09-24 16:00:04
127
转载 STL:list用法总结
list用法汇总https://blog.youkuaiyun.com/xiaoquantouer/article/details/70339869
2019-09-24 11:43:08
136
原创 LeetCode:148. Sort List
一、问题描述Sort a linked list inO(nlogn) time using constant space complexity.Example 1:Input: 4->2->1->3Output: 1->2->3->4Example 2:Input: -1->5->3->4->0Out...
2019-09-24 11:34:54
137
原创 LeetCode:23. Merge k Sorted Lists
一、问题描述Mergeksorted linked lists and return it as one sorted list. Analyze and describe its complexity.Example:Input:[ 1->4->5, 1->3->4, 2->6]Output: 1->1->2->...
2019-09-23 20:15:36
129
原创 LeetCode:21. Merge Two Sorted Lists
一、问题描述Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.Example:Input: 1->2->4, 1->3->4Ou...
2019-09-19 20:56:46
130
原创 LeetCode:160. Intersection of Two Linked Lists
一、问题描述Write a program to find the node at which the intersection of two singly linked lists begins.For example, the following two linked lists:begin to intersect at node c1.二、思路分析这道题跟删除尾部第...
2019-09-19 20:25:42
128
原创 LeetCode:19. Remove Nth Node From End of List
一、问题描述Given a linked list, remove then-th node from the end of list and return its head.Example:Given linked list: 1->2->3->4->5, and n = 2.After removing the second node from th...
2019-09-19 18:54:30
119
原创 LeetCode:237. Delete Node in a Linked List
一、问题描述Write a function to delete a node (except the tail) in a singly linked list, given only access to that node.Given linked list --head =[4,5,1,9], which looks like following:Example 1...
2019-09-19 17:33:59
113
原创 单链表:从头到尾打印链表
解题思路:第一种方法:逆置单链表,然后输出;第二种方法:利用栈的特性(先进后出),从头部入栈,然后出栈即可;下面着重实现第二种方法。代码实现/*** struct ListNode {* int val;* struct ListNode *next;* ListNode(int x) :* va...
2019-09-18 12:50:09
352
原创 LeetCode:92. Reverse Linked List II
一、问题介绍Reverse a linked list from positionmton. Do it in one-pass.Note:1 ≤m≤n≤ length of list.Example:Input: 1->2->3->4->5->NULL, m = 2, n = 4Output: 1->4->3->...
2019-09-17 18:49:27
136
原创 LeetCode:206. Reverse Linked List
一、问题描述Reverse a singly linked list.Example:Input: 1->2->3->4->5->NULLOutput: 5->4->3->2->1->NULL二、代码实现/** * Definition for singly-linked list. * struct Lis...
2019-09-17 16:57:47
134
原创 把数组排成最小的数
一、问题介绍输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。二、解题思路定义新的大小关系,对vector容器内的数据进行排序,按照 将a和b转为string后若 a+b<b+aa排在b之前的规则排序,如 2 21 因为 21 2 < ...
2019-09-16 20:11:49
188
1
原创 扑克牌中的顺子
一、问题描述从扑克牌中随机抽 5 张牌,判断是不是顺子,即这 5 张牌是不是连续的。 2-10 为数字本身,A 为 1,J 为 11,Q 为 12,K 为 13,而大小王可以看成任意的 数字。(大小王最多4张)二、解题思路1、首先我们应该关注的是大小王等特殊字符,由于可以当成任意的数字,所有当成0处理。2、把数组排序,再统计数组中0的个数3、统计排序之后的数组中相邻数字之间的空缺总...
2019-09-16 16:19:59
328
原创 调整数组顺序使奇数位于偶数前面
一、问题描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。二、解题思路两个指针,一个首、一个尾。然后一个向前、一个向后判断奇、偶,然后交换(类似于快排的思想)三、代码实现void reOrderArray(vector<int> &a)...
2019-09-16 15:47:22
140
原创 LeetCode:349. Intersection of Two Arrays
一、问题介绍Given two arrays, write a function to compute their intersection.Example 1:Input: nums1 = [1,2,2,1], nums2 = [2,2]Output: [2]Example 2:Input: nums1 = [4,9,5], nums2 = [9,4,9,8,4]O...
2019-09-16 12:58:19
110
原创 Vim用法
vim --version 查看vim版本,如果没有安装,那就sudo apt-get install vim:q 退出:q! 强制退出在normal状态下,按i(光标前)、I(光标后)、o(光标下一行)、O(光标上一行)、A(光标行尾部):进入编辑状态(INSERT状态)ESC:进入到NORMAL状态。当不确定自己所在的状态时,按ESC、确保自己回到NORMAL状态。:wq 存盘、退...
2019-09-14 19:37:37
171
原创 ubuntu server命令汇总
安装ubuntu server后(ifconfig看到IP地址),下载xshell连接,但是连接不上,之后在server上,命令:ps -e | grep ssh。查看SSH服务,发现没有安装,命令:sudo apt-get install open-ssh server。开始安装SSH服务。一些shell命令who:那些用户连接到了sudo: 最高权限pwd:当前目录man pw...
2019-09-14 16:11:06
1633
原创 LeetCode:287. Find the Duplicate Number
一、问题描述Given an arraynumscontainingn+ 1 integers where each integer is between 1 andn(inclusive), prove that at least one duplicate number must exist. Assume that there is only one duplicate nu...
2019-09-12 17:06:34
127
原创 STL:unordered_set 与set的区别
c++ std中set与unordered_set区别和map与unordered_map区别类似:1.头文件<unordered_set> <set>2.. set基于红黑树实现,红黑树具有自动排序的功能,因此map内部所有的数据,在任何时候,都是有序的。3. unordered_set基于哈希表,数据插入和查找的时间复杂度很低,几乎是常数时间,而代价是消耗比较...
2019-09-12 16:48:42
1284
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人