自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 实现TCP协议端到端的可靠传输 RDT

RDT2.0:在RDT2.0中,传输通道被视为有可能发生比特错误,我们使用差错检测来检验接收到的包有没有错误,以此来判断是否应该重传。接收方会返回NAK或ACK,分别对应数据错误和数据正确。在Log.txt中可以看到,在此处接收方返回了NAK,让发送方重传数据。RDT2.1:RDT2.1解决了RDT2.0一个致命的问题,那就是返回的NAK或ACK也可能会出现比特位翻转,为了解决这个问题,我们在RDT2.0的基础上增加一个序号(0或1)。这时,发送方有两种发送状态发送0号数据包和1号数据包,接收方也

2022-01-01 17:39:05 1854

原创 Leetcode 36. 有效的数独

题目描述请你判断一个 9x9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图)数独部分空格内已填入了数字,空白格用 ‘.’ 表示。注意:一个有效的数独(部分已被填充)不一定是可解的。只需要根据以上规则,验证已经填入的数字是否有效即可。示例 1:输入:board =[[“5”,“3”,".",".",“7”

2021-09-17 12:37:36 100

原创 CSP202006-2

试题编号:202006-2试题名称:稀疏向量时间限制:2.0s内存限制:512.0MB问题描述:C++#include<iostream>#include<map>using namespace std;int main(){ long long n, a, b; cin >> n >> a >> b; map <long long, long long> vector1;

2021-08-31 15:13:25 125

原创 CSP202006-1

试题名称:线性分类器时间限制:1.0s内存限制:512.0MB问题描述: C++#include<iostream>using namespace std;class Point{ public: int x; int y; char type;};int main(){ int n, m; cin >> n >> m; Point typeA[1005

2021-08-31 15:09:22 87

原创 国内开源镜像网站

http://mirrors.aliyun.com 阿里云开源镜像https://mirrors.tuna.tsinghua.edu.cn 清华大学开源镜像http://mirrors.163.com 网易http://mirrors.sohu.com 搜狐

2021-07-29 14:35:25 107

原创 LeetCode 剑指 Offer 32 - I. 从上到下打印二叉树

题目描述从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。例如:给定二叉树: [3,9,20,null,null,15,7],3/ \9 20 / \15 7返回:[3,9,20,15,7]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-lcofjava代码/** * Definition for a binary tree

2021-07-25 18:42:04 138

原创 LeetCode 剑指 Offer 43. 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来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/1nzheng-shu-zhong-1chu-xian-de-ci-shu-lcofJava代码class Solution { public

2021-07-22 13:03:57 64

原创 LeetCode 剑指 Offer 38. 字符串的排列

题目描述输入一个字符串,打印出该字符串中字符的所有排列。你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。示例:输入:s = “abc”输出:[“abc”,“acb”,“bac”,“bca”,“cab”,“cba”]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/zi-fu-chuan-de-pai-lie-lcofJava代码class Solution { List<String> res = new

2021-07-19 16:44:59 81

原创 接口型模式

接口型模式问题:类Client的实例instanceClient希望使用另一个对象instanceX提供的服务service,但在设计时并不能确定对象instanceX属于哪一个类。解决办法:将对象instanceX提供的服务service抽象为一个接口ServiceProvider,然后让对象instanceClient通过持有接口ServiceProvider的实例来使用服务service。这种通过接口间接获得服务的解决方案就是接口模式。接口模式还可以有一些变化的形式:不止用一个接口抽象一个对象提供

2021-07-19 15:28:53 426

原创 LeetCode 剑指 Offer 16. 数值的整数次方

题目描述实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。不得使用库函数,同时不需要考虑大数问题。示例 1:输入:x = 2.00000, n = 10输出:1024.00000示例 2:输入:x = 2.10000, n = 3输出:9.26100示例 3:输入:x = 2.00000, n = -2输出:0.25000解释:2-2 = 1/22 = 1/4 = 0.25来源:力扣(LeetCode)链接:https://leetcode-cn.com/pro

2021-07-14 22:03:46 66

原创 LeetCode 剑指 Offer 26. 树的子结构

题目描述输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)B是A的子结构, 即 A中有出现和B相同的结构和节点值。例如:给定的树 A: 3/ \4 5/ \1 2给定的树 B:4 /1返回 true,因为 B 与 A 的一个子树拥有相同的结构和节点值。示例 1:输入:A = [1,2,3], B = [3,1]输出:false示例 2:输入:A = [3,4,5,1,2], B = [4,1]输出:true来源:力扣(Le

2021-07-14 21:33:38 137

原创 LeetCode 剑指 Offer 14- II. 剪绳子 II

题目描述给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]…k[m - 1] 。请问 k[0]k[1]…*k[m - 1] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入: 2输出: 1解释: 2 = 1 + 1, 1

2021-07-14 21:02:34 65

原创 LeetCode 剑指 Offer 14- I. 剪绳子

题目描述给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]…k[m-1] 。请问 k[0]k[1]…*k[m-1] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。示例 1:输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1示例 2:输入: 10输出: 36解释: 10 = 3 + 3 + 4, 3 × 3 ×

2021-07-13 19:34:00 80

原创 Leetcode 剑指 Offer 12. 矩阵中的路径

题目描述给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。例如,在下面的 3×4 的矩阵中包含单词 “ABCCED”(单词中的字母已标出)。示例 1:输入:board = [[“A”,“B”,“C”,“E”],[“S”,“F”,“C”,“S”],[“A”,

2021-07-12 17:03:41 140

原创 Leetcode 剑指Offer 04. 二维数组中的查找

题目描述在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[[1, 4, 7, 11, 15],[2, 5, 8, 12, 19],[3, 6, 9, 16, 22],[10, 13, 14, 17, 24],[18, 21, 23, 26, 30]]给定 target = 5,返回 true。

2021-07-12 16:21:07 81

原创 常用Linux命令

常用Linux命令cd :改变目录。cd… :回退到上一个目录,直接cd进入默认目录pwd :显示当前所在的目录路径。ls(Il) :都是列出当前目录中的所有文件,只不过ll(两个II)列出的内容更为详细。touch :新建一个文件如touch index.js就会在当前目录下新建一个index.js文件。rm :删除一个文件, rm index.js就会把index.js文件删除。mkdir :新建一个目录,就是新建一个文件夹。rm -r :删除一个文件夹, rm -r src删除sr

2021-07-10 17:03:13 90

原创 Leetcode 剑指 Offer 47. 礼物的最大价值

题目描述在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/li-wu-de-zui-da-jie-zhi-lcofJavaclass Solution { public int maxValue(i

2021-06-08 21:18:24 65

原创 Leetcode 剑指 Offer 07. 重建二叉树

题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。题目链接:https://leetcode-cn.com/problems/zhong-jian-er-cha-shu-lcof/Java/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode r

2021-06-04 17:16:51 166

原创 Leetcode 剑指 Offer 56 - I. 数组中数字出现的次数

题目描述一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。题目链接:https://leetcode-cn.com/problems/shu-zu-zhong-shu-zi-chu-xian-de-ci-shu-lcof/C++class Solution {public: vector<int> singleNumbers(vector<int>& nums)

2021-06-03 18:16:21 57

原创 CSP 201403-1 相反数

问题描述有 N 个非零且各不相同的整数。请你编一个程序求出它们中有多少对相反数(a 和 -a 为一对相反数)。输入格式第一行包含一个正整数 N。(1 ≤ N ≤ 500)。  第二行为 N 个用单个空格隔开的非零整数,每个数的绝对值不超过1000,保证这些整数各不相同。输出格式只输出一个整数,即这 N 个数中包含多少对相反数。样例输入51 2 3 -1 -2样例输出2C++#include<iostream>using namespace std;int mai

2021-06-01 18:07:14 88

原创 Leetcode 剑指 Offer 37. 序列化二叉树

题目描述请实现两个函数,分别用来序列化和反序列化二叉树。题目链接:https://leetcode-cn.com/problems/xu-lie-hua-er-cha-shu-lcof/Java(广度优先遍历二叉树)/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNod

2021-06-01 17:45:37 49

原创 Leetcode 剑指 Offer 36. 二叉搜索树与双向链表

题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/er-cha-sou-suo-shu-yu-shuang-xiang-lian-biao-lcofJava(中序遍历二叉搜索树)/*// Definition for a Node.class Node { public int val; public

2021-06-01 16:58:08 91

原创 Leetcode 剑指 Offer 35. 复杂链表的复制

题目描述请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/fu-za-lian-biao-de-fu-zhi-lcofJava(用HashMap)/*// Definition for a Node.class Node { int val;

2021-06-01 16:34:05 71

原创 CSP 201312-3 最大的矩形

问题描述在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i(1 ≤ i ≤ n)个矩形的高度是hi。这n个矩形构成了一个直方图。例如,下图中六个矩形的高度就分别是3, 1, 6, 5, 2, 3。请找出能放在给定直方图里面积最大的矩形,它的边要与坐标轴平行。对于上面给出的例子,最大矩形如下图所示的阴影部分,面积是10。  输入格式第一行包含一个整数n,即矩形的数量(1 ≤ n ≤ 1000)。第二行包含n 个整数h1, h2, … , hn,相邻的数之间由空格分隔。(1 ≤ hi ≤ 10

2021-05-31 18:03:20 79

原创 CSP 201312-2 ISBN号码

问题描述每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。ISBN码的首位数字表示书籍的出版语言,例如0代表英语;第一个分隔符“-”之后的三位数字代表出版社,例如670代表维京出版社;第二个分隔之后的五位数字代表该书在出版社的编号;最后一位为识别码。  识别码的计算方法如下:  首位数字乘以1加上次

2021-05-31 17:42:02 53

原创 Leetcode 剑指 Offer 56 - II. 数组中数字出现的次数 II

题目描述在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。题目链接:https://leetcode-cn.com/problems/shu-zu-zhong-shu-zi-chu-xian-de-ci-shu-ii-lcof/Java(排序)class Solution { public int singleNumber(int[] nums) { Arrays.sort(nums); for(int i =

2021-05-31 17:14:44 127

原创 Leetcode 剑指 Offer 10- I. 斐波那契数列

题目描述写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下:F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。来源:力扣(LeetCode)链接:https://leetcode-cn

2021-05-31 16:51:24 57

原创 Leetcode 剑指 Offer 10- II. 青蛙跳台阶问题

题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/qing-wa-tiao-tai-jie-wen-ti-lcofJavaclass Solution { public int numWays(int n) { //

2021-05-31 16:44:26 47

原创 Leetcode 剑指 Offer 58 - I. 翻转单词顺序

题目描述输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. “,则输出"student. a am I”。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/fan-zhuan-dan-ci-shun-xu-lcofJava(双指针)class Solution { public String reverseWords(String s) {

2021-05-31 16:06:40 51

原创 Leetcode 剑指 Offer 29. 顺时针打印矩阵

题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。题目链接:https://leetcode-cn.com/problems/shun-shi-zhen-da-yin-ju-zhen-lcof/Javaclass Solution { public int[] spiralOrder(int[][] matrix) { if(matrix.length == 0) return new int[0]; int l = 0,

2021-05-30 16:46:17 49

原创 Leetcode 剑指 Offer 53 - II. 0~n-1中缺失的数字

题目描述一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/que-shi-de-shu-zi-lcofJavaclass Solution { public int missingNumber(int[] nums) { int i = 0, j = nums

2021-05-30 16:05:01 92

原创 Leetcode 剑指 Offer 61. 扑克牌中的顺子

题目描述从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/bu-ke-pai-zhong-de-shun-zi-lcofJavaclass Solution { public boolean isStraight(int[] nums) {

2021-05-30 15:51:18 78

原创 CSP 201312-1 出现次数最多的数

问题描述给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。输入格式输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数。  输入的第二行有n个整数s1, s2, …, sn (1 ≤ si ≤ 10000, 1 ≤ i ≤ n)。相邻的数用空格分隔。输出格式输出这n个次数中出现次数最多的数。如果这样的数有多个,输出其中最小的一个。样例输入610 1 10 20 30 20样例输出10解答#include<iostream

2021-05-29 18:22:27 51

原创 Leetcode 剑指 Offer 11. 旋转数组的最小数字

题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。链接:https://leetcode-cn.com/problems/xuan-zhuan-shu-zu-de-zui-xiao-shu-zi-lcofJava中间元素与左边界元素相比class Solution { public int minArray(int

2021-05-29 17:25:05 67

原创 Leetcode 剑指 Offer 53 - I. 在排序数组中查找数字 I

题目描述统计一个数字在排序数组中出现的次数。题目链接:https://leetcode-cn.com/problems/zai-pai-xu-shu-zu-zhong-cha-zhao-shu-zi-lcof/最初的想法class Solution { public int search(int[] nums, int target) { int mid = (nums.length - 1)>>1; int count = 0, l = 0,r

2021-05-28 21:26:18 85

原创 Leetcode 剑指 Offer 40. 最小的k个数

题目描述输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。题目链接:https://leetcode-cn.com/problems/zui-xiao-de-kge-shu-lcof/Javaclass Solution { public int[] getLeastNumbers(int[] arr, int k) { quick_sort(arr, 0, arr.length-1);

2021-05-28 20:33:23 68

原创 Leetcode 剑指 Offer 42. 连续子数组的最大和

题目描述输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。Javaclass Solution { public int maxSubArray(int[] nums) { int res = nums[0]; for(int i=1; i<nums.length; ++i) { nums[i] += Math.max(nums[i-1], 0);

2021-05-28 20:00:44 60

原创 Leetcode 剑指 Offer 28. 对称的二叉树

题目要求请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。题目链接:https://leetcode-cn.com/problems/dui-cheng-de-er-cha-shu-lcof/Java/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right;

2021-05-27 20:52:27 53

原创 Leetcode 剑指 Offer 55 - II. 平衡二叉树

题目描述输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。Java/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class

2021-05-27 20:35:19 69

原创 Leetcode 剑指 Offer 30. 包含min函数的栈

题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。题目链接:https://leetcode-cn.com/problems/bao-han-minhan-shu-de-zhan-lcof/Javaclass MinStack { /** initialize your data structure here. */ Stack<Integer> s1, s2;

2021-05-25 19:58:07 42

空空如也

空空如也

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

TA关注的人

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