自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 顺时针打印矩阵(C++简单区)

顺时针打印矩阵题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例 2:输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]限制:0 <= matrix.length <= 1000 <= matrix[i].length

2020-09-30 11:02:37 335

原创 对称的二叉树(C++简单区)

对称的二叉树题目:请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:示例 1:输入:root = [1,2,2,3,4,4,3]输出:true示例 2:输入:root = [1,2,2,null,3,null,3]输出:false限制:0 <= 节点个数 <= 1000解题思路首先对于这类二

2020-09-29 10:24:49 602

原创 二叉树的镜像(C++简单区)

二叉树的镜像题目:请完成一个函数,输入一个二叉树,该函数输出它的镜像。例如输入:示例 1:输入:root = [4,2,7,1,3,6,9]输出:[4,7,2,9,6,3,1]限制:0 <= 节点个数 <= 1000解题思路解法一(递归法)方法很简单,直接看代码:代码如下:class Solution {public: TreeNode* mirrorTree(TreeNode* root) { if(root==NULL) return NU

2020-09-28 12:09:16 240

原创 树的子结构(C++中等区)

树的子结构题目:输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)B是A的子结构, 即 A中有出现和B相同的结构和节点值。例如:给定的树 A:给定的树 B:返回 true,因为 B 与 A 的一个子树拥有相同的结构和节点值。示例 1:输入:A = [1,2,3], B = [3,1]输出:false示例 2:输入:A = [3,4,5,1,2], B = [4,1]输出:true限制:0 <= 节点个数 <= 10000解题思路

2020-09-27 10:17:54 222

原创 合并两个排序的链表(C++简单区)

合并两个排序的链表题目:输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。示例1:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4限制:0 <= 链表长度 <= 1000解题思路一开始的思路是将l2上的节点一个个拆下来与l1各个节点的值进行比对,然后以此方法将l2节点全部按大小顺序插入到l1中,最后返回l1。代码如下:/** * Definition for sing

2020-09-26 12:07:37 1255

原创 反转链表(C++简单区)

反转链表题目:定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL限制:0 <= 节点个数 <= 5000解题思路解法一(双链表法)算法过程代码如下:/** * Definition for singly-linked list. * struct ListNode { * in

2020-09-25 10:31:36 368 1

原创 链表中倒数第k个节点(C++简单区)

链表中倒数第k个节点题目:输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。示例:给定一个链表: 1->2->3->4->5, 和 k = 2.返回链表 4->5.解题思路解法一通过遍历链表统计出节点的个数定义一个指向头节点的指针,移动n-k个结点输出该结点指针代码如下:

2020-09-24 10:30:28 327

原创 调整数组顺序使奇数位于偶数前面(C++简单区)

调整数组顺序使奇数位于偶数前面题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。示例:输入:nums = [1,2,3,4]输出:[1,3,2,4]注:[3,1,2,4] 也是正确的答案之一。提示:1 <= nums.length <= 500001 <= nums[i] <= 10000解题思路一暴力解法算法流程:从头开始遍历,将遍历到的奇数放在另一个vector数组中将当前奇数从

2020-09-23 10:42:15 288

原创 删除链表的节点(C++简单区)

删除链表的节点题目:给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。注意:此题对比原题有改动示例 1:输入: head = [4,5,1,9], val = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.示例 2:输入: head = [4,5,1,9], val = 1输出: [4,5,9]解释: 给定你链表中值为 1 的第三个节点,那么在调用

2020-09-22 10:02:54 4907

原创 打印从1到最大的n位数(C++简单区???)

打印从1到最大的n位数题目:输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。示例 1:输入: n = 1输出: [1,2,3,4,5,6,7,8,9]说明:用返回一个整数列表来代替打印n 为正整数解题思路首先我们可以看出当n为1时,输出最大为9;当n为2时,输出最大为99;当n为3时,输出最大为999;以此类推,我们可以得知输入n时,输出最大数为(10^n)-1;当 n较大时,输出最大值会超出 int32整

2020-09-21 10:24:55 467

原创 数值的整数次方(C++中等区)

数值的整数次方题目:实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。示例 1:输入: 2.00000, 10输出: 1024.00000示例 2:输入: 2.10000, 3输出: 9.26100示例 3:输入: 2.00000, -2输出: 0.25000解释: 2-2 = 1/22 = 1/4 = 0.25说明:-100.0 < x < 100.0n

2020-09-20 10:50:46 153

原创 二进制中1的个数(C++简单区)

二进制中1的个数题目:请实现一个函数,输入一个整数,输出该数二进制表示中 1 的个数。例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。示例 1:输入:00000000000000000000000000001011输出:3解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 ‘1’。示例 2:输入:00000000000000000000000010000000输出:1解释:输入的二进制串 0

2020-09-18 11:12:29 1836

原创 剪绳子Ⅱ(C++中等区)

剪绳子Ⅱ题目:给你一根长度为 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,

2020-09-17 10:51:39 392

原创 剪绳子(C++中等区)

剪绳子题目:给你一根长度为 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

2020-09-16 21:36:21 775

原创 机器视觉(硬币分割与边缘提取)

硬币分割与边缘提取本次的图像硬币分割是在Matlab平台上采用基于阈值的图像分割法实现。总体步骤分为中值滤波去噪、图像二值化、开操作、闭操作、连通区域提取、BoundingBox提取标记六步完成。可以看到原始图像中含有一定的噪声,因此采用中值滤波算法进行降噪处理。经过代码的调试与实验结果对比,本次采用的是6*6窗口的中值滤波算法,可以很好的看到图片去噪后的效果。首先是获取原始图片的路径,然后对原始图片进行降噪处理,降噪处理就是去除图片中多余的白点噪声,为下一步的二值化处理进行先前准备工作。原始图像

2020-09-16 14:35:53 4984

原创 机器人的运动范围(C++中等区)

机器人的运动范围题目:地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18。但它不能进入方格 [35, 38],因为3+5+3+8=19。请问该机器人能够到达多少个格子?示例 1:输入:m = 2, n = 3, k = 1输出:3示例 2:

2020-09-15 17:02:57 503

转载 图的深度优先遍历(DFS)和广度优先遍历(BFS)

图的深度优先遍历(DFS)和广度优先遍历(BFS)图的搜索有两种方式,一种是深度优先搜索(Depth-First-Search),另一种是广度优先搜索(Breadth-First-Search),接下来,我们来写一下这些搜索方式的Java实现,同样的,这里的代码均继承了自定义的EnhanceModual类,我之前的文章(查看EnhanceModual类)有提到这个类以及这个类的作用。一、广度优先搜索(BFS)广度优先搜索是按层来处理顶点,距离开始点最近的那些顶点首先被访问,而最远的那些顶点则最后

2020-09-15 14:50:45 679

原创 矩阵中的路径(C++中等区)

矩阵中的路径题目:请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。例如,在下面的3×4的矩阵中包含一条字符串“bfce”的路径(路径中的字母用加粗标出)。[[“a”,“b”,“c”,“e”],[“s”,“f”,“c”,“s”],[“a”,“d”,“e”,“e”]]但矩阵中不包含字符串“abfb”的路径,因为字符串的第一个字符b占据了矩

2020-09-14 11:57:42 369

转载 C++网络编程(聊天室项目)

聊天室项目功能:创建仿微信聊天室,完成群聊加私聊功能文章目录聊天室项目前言一、服务器实现过程二、客户端实现过程实现画面截图前言服务器任务:与客户端进行连接将群聊信息发给各个客户端,将私聊信息发送给指定客户端客户端任务:连接服务器发送信息给服务器或从服务器接受消息一、服务器实现过程一、初始化过程建立套接字监听是否有客户端请求连接。socket()调用bind()函数绑定服务器地址调用Listen()函数设置同时与客户端建立连接的个数调用epoll_create

2020-09-13 22:29:06 3810

原创 旋转数组的最小数字(C++简单区)

旋转数组的最小数字题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。示例 1:输入:[3,4,5,1,2]输出:1示例 2:输入:[2,2,2,0,1]输出:0解题思路首先看到题目后直接用暴力排序的方法来进行解题。利用sort算法将vector容器中的元素从小到大排序,然后取出排序后容器里的第一个元素就是数组的最小

2020-09-13 11:47:52 188

原创 青蛙跳台阶问题(C++简单区)

青蛙跳台阶问题题目:一只青蛙一次可以跳上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(1)之间是有联系的。设

2020-09-12 10:45:36 2359

原创 斐波那契数列(C++简单区)

斐波那契数列答案:写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入:n = 2输出:1示例 2:输入:n = 5输出:5提示

2020-09-11 14:57:57 1925

原创 用两个栈实现队列(C++简单区)

用两个栈实现队列题目:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例 1:输入:[“CQueue”,“appendTail”,“deleteHead”,“deleteHead”][[],[3],[],[]]输出:[null,null,3,-1]示例 2:输入:[“CQueue”,“deleteHead”,“app

2020-09-10 11:04:11 358

原创 重建二叉树(C++中等区)

重建二叉树题目:输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树:限制:0 <= 节点个数 <= 5000解题思路首先我的想法是,一般我们看到树的这类问题,可以想想能否用递归的方法解决。这题用递归思想比较好理解。题目给定的是树的前序和中序,我们首先可以根据树的前序的特性可知

2020-09-09 14:55:52 579

原创 从尾到头打印链表(C++简单区)

从头到尾打印链表题目:输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = [1,3,2]输出:[2,3,1]限制:0 <= 链表长度 <= 10000解题思路看到题目后首先想到的就是C++中stl提供的反转(reverse)算法,先遍历整个链表,将每个结点的数据都尾插到vector容器中,当遍历完之后将整个容器反转,这样就能解出此题了。1.反转代码代码如下:class Solution {public: vector

2020-09-08 11:47:54 244

原创 替换空格(C++简单区)

替换空格题目:请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = “We are happy.”输出:“We%20are%20happy.”限制:0 <= s 的长度 <= 10000解题思路看到题目我们先想到最暴力的解法就是通过遍历整个字符串来找到每一个空格,然后将每一个空格替换成%20。但是由于题目限定了字符串的大小,所以考虑到算法的时间复杂度,这种方法效果太差。然后想到了利用C++中stl现有的查找和替换算法来进行实现。find函数和re

2020-09-07 14:36:08 2152

原创 二维数组中的查找(C++简单区)

二维数组中的查找题目:在一个 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,返回 t

2020-09-06 15:11:04 631

原创 Leetcode(找出数组中重复的数字)

Leetcode(剑指offer—找出数组中重复的数字)题目:找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3限制:2 <= n <= 100000来源:力扣(LeetCode)链接:https://leetcode-cn.com/problem

2020-09-05 16:41:04 219

空空如也

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

TA关注的人

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