自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 deepin20.3 安装opendaylight

1.下载jdk8官网链接初次登陆官网需注册,为方便大家,提供一个账号仅供下载使用id:[email protected]:0000000000Ml@2.解压tar -zxvf + 压缩包name3.配置java环境sudo vim /etc/profile在profile 文件中添加以下配置export JAVA_HOME=/usr/local/jdk1.8.0_181 #jdk安装目录 export JRE_HOME=${JAVA_HOME}/jre exp

2021-12-18 22:27:23 368

原创 mininet在的deepin下安装报错问题

由于mininet默认未适配deepin系统,所以在安装时会报如下错误:mal@mal-PC:~/app/mininet/util$ sudo ./install.sh -aDetected Linux distribution: Deepin 20.3 n/a amd64Install.sh currently only supports Ubuntu|Debian|Fedora|RedHatEnterpriseServer|SUSE LINUX.解决方法:给install.sh中 DIST

2021-12-15 08:41:42 1976

原创 --刷题日常

两个栈实现队列class MyQueue {public: stack<int> In; stack<int> Out; MyQueue() { } void push(int x) { In.push(x); } int pop() { if(Out.empty()) { while(!In.empty())

2021-12-01 23:42:50 209

原创 LeetCode: 搜索二维矩阵 II

编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。1.暴力遍历匹配class Solution {public: bool searchMatrix(vector<vector<int>>& matrix, int target) { for(auto &i:matrix) {

2021-10-25 20:30:03 132

转载 Leetode: 链表相交

题目:给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。图示两个链表在节点 c1 开始相交:题目数据 保证 整个链式结构中不存在环。注意,函数返回结果后,链表必须 保持其原始结构 。思路A长度为 a, B长度为b, 假设存在交叉点,此时 A到交叉点距离为 c, 而B到交叉点距离为d后续交叉后长度是一样的,那么就是 a-c = b-d -> a+d = b+c这里意味着只要分别让A和B额外多走一遍B和

2021-10-19 21:21:12 90

原创 LeetCode: 删除链表的倒数第 N 个结点

题目:给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。进阶:你能尝试使用一趟扫描实现吗?思路:快慢指针,快指针先走n步,然后一起到结尾,慢指针所指的即为倒数第n个节点。class Solution {public: ListNode* removeNthFromEnd(ListNode* head, int n) { //if(head == nullptr || head->next == nullptr) return head;

2021-10-19 20:13:18 91

原创 LeetCode:两两交换链表元素

题目:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换思路:class Solution {public: ListNode* swapPairs(ListNode* head) { ListNode *vcur = new ListNode(0); vcur->next = head; ListNode*cur = vcur;

2021-10-19 18:36:17 260

原创 LeetCode: 反转链表

题目:给你单链表的头节点 head ,请你反转链表,并返回反转后的链表class Solution {public: ListNode* reverseList(ListNode* head) { return reverse(nullptr,head); } ListNode* reverse(ListNode* pre,ListNode*cur) { if(cur == nullptr) return pre;

2021-10-19 16:00:49 97

原创 LeetCode: 移除链表元素

题目:给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回新的头节点class Solution {public: ListNode* removeElements(ListNode* head, int val) { while(head != nullptr && head->val == val)//删除头节点 { ListNode*tm

2021-10-19 15:42:39 99

原创 LeetCode: 最长不含重复字符的子字符串

题目:请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列

2021-09-23 13:57:54 157

原创 LeetCode: 链表中倒数第k个节点

题目:输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。示例:给定一个链表: 1->2->3->4->5, 和 k = 2.返回链表 4->5.思路:快慢指针struct ListNode { int val; ListNode* next; ListNode

2021-09-22 20:25:53 103

原创 Leetcode: 买卖股票的最佳时机

题目:给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。示例 1:输入:[7,1,5,3,6,4]输出:5解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 =6)的时候卖出,最大利润 = 6-1 = 5 。注意利润不能是

2021-09-15 23:37:10 120

原创 Leetcode: 旋转数组

题目:给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。示例 1:输入: nums = [1,2,3,4,5,6,7], k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步:[7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]示例 2:输入:nums = [-1,-100,3,99], k = 2输出:[3,99,-1,-100]解释:向右旋转 1 步: [9

2021-09-15 22:24:46 90

原创 Leetcode:有序数组的平方

题目:给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。示例 1:输入:nums = [-4,-1,0,3,10]输出:[0,1,9,16,100]解释:平方后,数组变为 [16,1,0,9,100]排序后,数组变为 [0,1,9,16,100]示例 2:输入:nums = [-7,-3,2,3,11]输出:[4,9,9,49,121]提示:1 <= nums.length <= 104-104 &

2021-09-15 20:46:52 88

原创 Leetcode: 爬楼梯

题目:数组的每个下标作为一个阶梯,第 i 个阶梯对应着一个非负数的体力花费值 cost[i](下标从 0 开始)。每当你爬上一个阶梯你都要花费对应的体力值,一旦支付了相应的体力值,你就可以选择向上爬一个阶梯或者爬两个阶梯。请你找出达到楼层顶部的最低花费。在开始时,你可以选择从下标为 0 或 1 的元素作为初始阶梯。示例 1:输入:cost = [10, 15, 20]输出:15解释:最低花费是从 cost[1] 开始,然后走两步即可到阶梯顶,一共花费 15。示例 2:输入:cost

2021-09-15 19:24:25 99

原创 Leetcode: 第 N 个泰波那契数

题目:泰波那契序列 Tn 定义如下:T0 = 0, T1 = 1, T2 = 1, 且在 n >= 0 的条件下 Tn+3 = Tn + Tn+1 + Tn+2给你整数 n,请返回第 n 个泰波那契数 Tn 的值。示例 1:输入:n = 4输出:4解释:T_3 = 0 + 1 + 1 = 2T_4 = 1 + 1 + 2 = 4示例 2:输入:n = 25输出:1389537提示:0 <= n <= 37答案保证是一个 32 位整数,即 answer

2021-09-15 18:06:55 104

原创 Leetcode: 罗马数字转整数

罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符数值I1V5X10L50C100D500M1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数

2021-09-14 19:23:32 147

原创 Leetcode: 最长公共前缀

题目:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入:strs = [“flower”,“flow”,“flight”]输出:“fl”示例 2:输入:strs = [“dog”,“racecar”,“car”]输出:""解释:输入不存在公共前缀提示:1 <= strs.length <= 2000 <= strs[i].length <= 200strs[i] 仅由小写英文字母组成string

2021-09-13 17:03:20 84

原创 Leetcode: 查找插入位置

题目:给定一个排序的整数数组 nums 和一个整数目标值 target ,请在数组中找到 target ,并返回其下标。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。示例 1:输入: nums = [1,3,5,6], target = 5输出: 2示例 2:输入: nums = [1,3,5,6], target = 2输出: 1示例 3:输入: nums = [1,3,5,6], target = 7输出: 4

2021-09-12 17:46:12 103

原创 Leetcode: 回文数

题目:给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。示例 1:输入:x = 121输出:true示例 2:输入:x = -121输出:false解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入:x = 10输出:false解释:从右向左读, 为 01 。因此它不是一个回文数。

2021-09-12 16:33:36 77

原创 Leetcode: 错误的集合

题目:集合 s 包含从 1 到 n 的整数。不幸的是,因为数据错误,导致集合里面某一个数字复制了成了集合里面的另外一个数字的值,导致集合 丢失了一个数字 并且 有一个数字重复 。给定一个数组 nums 代表了集合 S 发生错误后的结果。请你找出重复出现的整数,再找到丢失的整数,将它们以数组的形式返回。示例 1:输入:nums = [1,2,2,4]输出:[2,3]示例 2:输入:nums = [1,1]输出:[1,2]提示:2 <= nums.length <= 10

2021-09-12 16:28:57 77

原创 leetcode: 用 Rand7() 实现 Rand10()

题目:已有方法 rand7 可生成 1 到 7 范围内的均匀随机整数,试写一个方法 rand10 生成 1 到 10 范围内的均匀随机整数。不要使用系统的 Math.random() 方法。示例 1:输入: 1输出: [7]示例 2:输入: 2输出: [8,4]示例 3:输入: 3输出: [8,1,10]提示:rand7 已定义。传入参数: n 表示 rand10 的调用次数。思路:RandNN= N( RandN()-1 ) + RandN() ;// 生成1到

2021-09-09 17:46:38 95

原创 leetcode 整数反转

给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-integer。示例 1:输入:x = 123输出:321示例 2:输入:x = -123输出:-321示例 3:输入:x = 120输出:21示例 4:输入:x = 0输出:0

2021-09-05 21:20:10 74

原创 剑指 Offer 25 合并两个排序的链表

题目描述:输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的示例1:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4限制:0 <= 链表长度 <= 1000/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * L

2021-09-05 13:41:10 81

原创 mac关闭某端口指定进程

1.执行lsof -i:端口号,显示当前端口所有进程信息,例如pid…2.执行kill -9 pid,关闭相应进程

2021-07-14 10:53:52 420

原创 Redis入门

Redis入门1.Redis安装:1).官网下载Redis安装包2).将安装包传到Linux系统3).将安装包拷贝到 /opt4).解压并进入解压后目录5).执行`make`,再执行`make install`6).切换到`/usr/local/bin`目录下7).拷贝Redis的配置文件(redis.conf)到当前目录下8).修改配置文件9).启动Redis的服务器 执行命令 `./redis-server redis.conf`10).启动Redis的客户端 执行命令 `./redis-cli -p

2021-05-20 11:41:51 135

原创 LeetCode刷题 | 青蛙跳台阶问题

问题:一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入:n = 2 输出:2示例 2:输入:n = 7 输出:21示例 3:输入:n = 0 输出:1提示:0 <= n <= 100解法一:斐波拉契数列,f(n) = f(n-1)+f(n-2)int numWays(int n){ if (n

2021-03-29 00:13:53 235

原创 LeetCode刷题 | 唯一元素的和

题目:给你一个整数数组 nums 。数组中唯一元素是那些只出现 恰好一次 的元素。请你返回 nums 中唯一元素的 和 。示例 1:输入:nums = [1,2,3,2] 输出:4 解释:唯一元素为 [1,3] ,和为 4 。示例 2:输入:nums = [1,1,1,1,1] 输出:0 解释:没有唯一元素,和为 0 。示例 3 :输入:nums = [1,2,3,4,5] 输出:15 解释:唯一元素为 [1,2,3,4,5] ,和为 15 。提示:1 <= nums

2021-03-28 20:24:33 1114

原创 C++ 各种关键字以及概念间的区别

目录指针和引用的区别:堆和栈的区别:new/delete与malloc/free的异同:未完待续....指针和引用的区别:1.指针是一个变量,存储的是地址。引用是一个别名,和原变量是同一个东西;2.指针可以有多级,引用只有一级;3.指针可以为空,引用不能为空且必须在定义时初始化;4.指针在初始化后可以改变指向,引用初始化后不可以改变;5.sizeof指针得到的是本指针的大小,sizeof引用得到的是引用所指向变量的大小;6.当把指针作为形参传递时,实际是把实参拷贝后传递给形参,两者指向地址相同

2021-03-11 23:57:45 216

原创 sizeof与strlen区别 线程与进程区别

sizeof和strlen的区别sizeof和strlen的区别:sizeof和strlen的区别sizeof和strlen的区别:sizeof和strlen的区别:1,本质区别:sizeof是运算符,strlen是函数;2,sizeof的参数可以是类型,变量,还可以是函数,是函数时返回的是函数返回值的大小,strlen的参数只能是字符串,并且是以‘\0’结尾的字符串,遇到‘\0’时返回字符串的长度;3,数组名做sizeof参数时,不退化从指针。sizeof用来计算类型占内存的大小。当参数为字符串

2021-03-10 23:30:56 119

原创 C++ STL容器概念

容器string容器:vector容器:向量deque容器:双端队列list容器:双链表关联容器set、multiset、map、multimap集合set:map:multiset和multimap:关联容器特点:string容器:string其实相当于一个保存字符的序列容器,因此除了有字符串的一些常用操作以外,还有包含了所有的序列容器的操作。字符串的常用操作包括:增加、删除、修改、查找比较、链接、输入、输出等vector容器:向量​ 是一个封装了动态大小数组的顺序容器,是一个可以存放任意类型

2021-03-10 23:24:02 191

原创 算法 查找众数

给定一个大小为n的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 Ln/2」的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例1:输入:[3,2,3]输出:3示例2输入:[22,1,1,1,2,2输出:2说明本题题面中没有给岀数据范围,但最简单的暴力方法(即枚举数组中的毎个元素,再遍历一遍数组统计其出现次数,时间复杂度为O(N^2)的算法).会超出时间限制,因此我们需要找出时间复杂度小于ON^2)的优秀做法。解法一:排序取中间数因为根据题目描述可以.

2020-11-19 19:02:17 1522

原创 windowsw网络编程 ping程序的实现

【实验目的】1.熟悉原始套接字编程的基本流程2.理解ping程序的实现机制3.理解ICMP协议的基于作用和报文格式。4.完成原始套接字的配置。【实验内容】1.构造ICMP协议首部结构2.构造ICMP回射请求结构。3.构造ICMP回射应答结构。4.构造IP首部结构。5.创建原始套接字。6.根据用户指定的地址获取目标IP。7.对目标地址循环发送ICMP请求。8.等待对方响应,并计算时间间隔。源代码:ping.h#pragma pack(1)#define ICMP_ECHOR

2020-11-19 16:06:18 514

原创 windows网络编程 Visual Studio 控制台编程 getservbyport()

【实验目的】掌握Visual Studio控制台应用编程的基本方法掌握Windows Sockets DLL的初始化和释放方法掌握Windows Sockets API调用的一般步骤使用Windows Sockets的API函数获得指定机器的信息(包括主机名、服务名、IP地址)Winsocket代码:#define _WINSOCK_DEPRECATED_NO_WARNINGS#include <winsock2.h>#include <ws2tcpip.h>#i

2020-10-29 20:52:45 424

原创 windows网络编程 使用流式套接字实现网络通信

【实验要求】(1)使用基本的服务器编程模式,创建流式套接字,根据指定端口号绑定服务,建立监听队列,并接受来自客户端的连接请求,收发数据;使用基本的客户端编程模式,能够创建流式套接字,通过用户的指定的服务器地址向指定服务器发起连接请求,与服务器之间实现收发数据,然后关闭连接。(2)通过改进服务器端,实现服务器循环为多个客户端提供服务;服务器端能够实现显示对应客户端的IP地址;客户端实现用户输入信息方式与服务器对话。(3)采用Windows环境下多线程开发方法改进服务器端,对每个客户连接请求独立创建通信线

2020-10-29 20:35:30 1412

原创 算法 利用库函数对数据进行排序

根据算法可以自己实现一个或者利用库函数,对数据进行排序.示例1:输入:arr=[8,4,2,1,3]输出:[1,2,3,4,8]算法1:利用C语言库函数qsort(快速排序)进行排序//实现整型的比较函数 int Int_cmp(const void*vp1,const void *vp2) { return *(int*)vp1-*(int*)vp2; } void quickSort(int *arr,int len) {

2020-10-24 18:32:37 202

原创 算法 所有奇数长度子数组的和

给你一个正整数数组 arr ,请你计算所有可能的奇数长度子数组的和。子数组定义为原数组中的一个连续子序列。请你返回 arr 中 所有奇数长度子数组的和 。示例 1:输入:arr = [1,4,2,5,3]输出:58解释:所有奇数长度子数组和它们的和为:长度为1的子数组有[1],[4],[2],[5],[3] ,相加结果为15长度为3的子数组有[1,4,2],[4,2,5],[2,5,3],相加的结果为7+11+10=28长度为5的子数组有[1,4,2,5,3] ,相加的结果为15我们将所

2020-10-24 18:27:22 496

原创 算法 1~n中1的次数

输入一个整数 n ,求1~n这n个整数的十进制表示中1出现的次数。例如,输入12,1~12这些整数中包含1 的数字有1、10、11和12,1一共出现了5次。示例 1:输入:n = 12输出:5示例 2:输入:n = 13输出:6原题出处:https://leetcode-cn.com/problems/number-of-digit-one/算法1:把每个数字中包含1的数量计算出来,然后把1~n的1的数量全部加起来(效率低)int NembOf1(int n){ int an

2020-10-24 18:18:33 519

原创 算法 整数的各位积和之差

给你一个整数 n,请你帮忙计算并返回该整数「各位数字之积」与「各位数字之和」的差。示例 1:输入:n = 234输出:15解释:各位数之积 = 2 * 3 * 4 = 24各位数之和 = 2 + 3 + 4 = 9结果 = 24 - 9 = 15示例 2:输入:n = 4421输出:21解释:各位数之积 = 4 * 4 * 2 * 1 = 32各位数之和 = 4 + 4 + 2 + 1 = 11结果 = 32 - 11 = 21算法:累积累和做差int Fun(int

2020-10-24 18:01:02 730

原创 算法 IP地址无效化

给你一个有效的 Ipv4地址 ,返回这个 IP 地址的无效化版本。所谓无效化 IP 地址,其实就是用 “[.]” 代替了每个 “.”。示例 1:输入:address = “1.1.1.1”输出:“1[.]1[.]1[.]1”示例 2:输入:address = “255.100.50.0”输出:“255[.]100[.]50[.]0”算法1:遍历字符串,遇到’.’进行替换char* defangIPaddr(char* address){ char* tmp = (char*)ma

2020-10-24 17:58:37 185

空空如也

空空如也

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

TA关注的人

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