自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 设计聊天窗口的测试用例

网络正常状态下,单聊的情境下:发送文字、图片、表情、小视频、语音,发送是否成功 接收文字、图片、表情、小视频、语音是否成功 发送文字、图片、表情、小视频、语音最大值测试 是否支持发送文件(群聊文件) 是否支持将语音转化为文字 发送语音、视频聊天,是否有声音提示 发送语音、视频聊天,长时间无人接听时,是否有提示信息? 语音聊天切换到视频聊天是否正常? 视频聊天切换到语...

2019-09-05 09:46:16 6609

原创 两数之和

暴力法:class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { int i,j; for(i=0;i<nums.size()-1;i++) { for(j=...

2019-09-03 16:12:04 329

原创 n*m方格中有多少个内切圆(正方形)?

1.设有一个n*m方格的棋盘(1≤m,n≤100)。求出该棋盘中包含多少个正方形、多少个长方形(不包括正方形)。求内切圆就是求正方形。//x=min(m,n)-1 //长方形里面数正方形的个数计算公式:m*n+(m-1)*(n-1)+.....+(m-x)*(n-x) // m*n表示长度为1的正方形的个数,(m-1)*(n-1)表示长度为2的正方形的个数。。。。。。//长...

2019-09-03 15:36:13 1498

转载 大数相除-相减

https://blog.csdn.net/zqw_yaomin/article/details/82505233

2019-09-02 12:41:24 212

原创 买卖股票的最佳时机

原题:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4] 输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。...

2019-09-02 12:28:01 154

原创 36进制数的加法运算

题目:36进制由0-9,a-z,共36个字符表示,最小为'0''0''9'对应十进制的09,'a''z'对应十进制的1035例如:'1b' 换算成10进制等于 1 * 36^1 + 11 * 36^0 = 36 + 11 = 47要求按照加法规则计算出任意两个36进制正整数的和如:按照加法规则,计算'1b' + '2x' = '48'要求:不允许把36进制数字整体转为10进制数字,...

2019-09-02 10:09:15 4810 1

原创 HTTP2.0

什么是HTTP2.0想要了解一个事物,首先就要知道它是什么。简单来说,HTTP/2(超文本传输协议第2版,最初命名为HTTP2.0),是HTTP协议的第二个主要版本。HTTP/2是HTTP协议自1999年HTTP1.1发布后的首个更新,主要基于SPDY协议。HTTP2.0的特点是:在不改动HTTP语义、方法、状态码、URI及首部字段的情况下,大幅度提高了web性能。什么是SPD...

2019-09-02 08:22:33 342

原创 http请求方法:get和post区别

get请注意,查询字符串(名称/值对)是在 GET 请求的 URL 中发送的GET 请求可被缓存GET 请求保留在浏览器历史记录中GET 请求可被收藏为书签GET 请求不应在处理敏感数据时使用GET 请求有长度限制 ,大多数浏览器通常都会限制url长度在2K个字节GET 请求只应当用于取回数据只接受ASCII字符的参数的数据类型get效率高post查询字符串(名称/值对...

2019-09-01 10:40:06 130

原创 最长上升子序列

给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。说明: 可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。 你算法的时间复杂度应该为 O(n2) 。进阶: 你能将算法的时间复杂度降低到 O(n log n) 吗...

2019-09-01 09:34:24 144

原创 二维矩阵逆置

题目:求一个二维矩阵的逆置分析:a[i][j]与a[j][i]交换位置即可一层一层交换void re(vector<vector<int>>& vv){ int j = 0; int k = j;//记录列 for (int i = 0; i < vv.size(); i++) { for (; j < vv[i].size...

2019-09-01 08:41:27 962

原创 mysql和redis的区别

1.mysql和redis的数据库类型mysql是关系型数据库,主要用于存放持久化数据,将数据存储在硬盘中,读取速度较慢。redis是NOSQL,即非关系型数据库,也是缓存数据库,即将数据存储在缓存中,缓存的读取速度快,能够大大的提高运行效率,但是保存时间有限2.mysql的运行机制mysql作为持久化存储的关系型数据库,相对薄弱的地方在于每次请求访问数据库时,都存在着I/O操作,...

2019-09-01 08:03:57 2376

原创 给一个回文正整数,找出第一个大于它的回文数

题目:给一个回文正整数,找出第一个大于它的回文数分析:先写一个判断一个数是不是回文数的函数,然后从这个数的下一个数开始判断,找一个离它最近并且大于它的回文数#include<map>#include<string>#include<iostream>using namespace std;//判断一个数是不是回文数bool Is_Rebac...

2019-08-31 21:16:23 880

原创 leetcode17. 电话号码的字母组合

题目:给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].分析:深度优先-回溯class Solution {public: string m...

2019-08-31 16:21:11 226

原创 c++11实现生产者消费者模型

1.生产者与消费者模型一个场所,两种角色,三种关系。(场所:线程安全的队列)2.优点解耦、支持忙闲不均、支持并发3.实现用到互斥锁,条件变量#include <thread> #include <mutex> #include <deque> #include <vector> #include &lt...

2019-08-29 20:06:01 582

原创 两个线程,一个打印奇数,一个打印偶数

题目:实现两个线程,一个打印奇数,一个打印偶数思路(1):用c++11的互斥量mutex,条件变量condition_variable.一个全局变量i,控制每个线程获取互斥锁后执行一次,再通过条件变量唤醒另一个等在该锁上的线程,让其执行,即保证两个线程交替运行。#include <thread>#include <iostream>#include &l...

2019-08-22 11:42:16 2564

原创 二叉树层序序列,输出它的镜像层序序列

二叉树的镜像输出指定二叉树的镜像输入描述以二叉树对应的完全二叉树为参照,空白节点处使用#字符填充,使用层次遍历表示二叉树,节点间使用空格分割,如427#369输出描述反转输入的二叉树,输出其镜像表示示例1输入427#369输出472963#说明输入输出采用层次遍历方式,空节点使用#标记填充为完全二叉树思路:先利用二叉树层序序列直...

2019-08-22 09:05:52 776 1

原创 两数相加

题目给定两个非空链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储单个数字。将这两数相加会返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。进阶:如果输入链表不能修改该如何处理?换句话说,你不能对列表中的节点进行翻转。示例:输入: (7 -> 2 -> 4 -> 3) + (5 -> 6 -&...

2019-07-06 15:36:40 126

原创 最长上升子序列

题目:给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。说明: 可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。 你算法的时间复杂度应该为 O(n2) 。进阶: 你能将算法的时间复杂度降低到 O(n ...

2019-07-06 13:48:01 132

原创 二叉树非递归遍历(前序、中序、后续、层序)

(1)前序vector<int> v; if(root==nullptr) return v; stack<TreeNode*> s; TreeNode* cur=root; while(cur || !s.empty()) { ...

2019-07-06 10:49:51 179

原创 模板为什么不支持分离编译

https://blog.csdn.net/w_y_x_y/article/details/80299302

2019-07-04 07:56:46 120

原创 合并两个有序数组

题目:给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明: 初始化 nums1 和 nums2 的元素数量分别为 m 和 n。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0...

2019-07-03 21:49:35 99

原创 合并两个有序数组

题目:给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明: 初始化 nums1 和 nums2 的元素数量分别为 m 和 n。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0...

2019-07-03 21:34:08 310

原创 连续最大和

题目:一个数组有 N 个元素,求连续子数组的最大和。 例如:[-1,2,1],和最大的连续子数组为[2,1],其和为 3输入描述:输入为两行。 第一行一个整数n(1 <= n <= 100000),表示一共有n个元素 第二行为n个数,即每个元素,每个整数都在32位int范围内。以空格分隔。输出描述:所有连续子数组中和最大的值。分析:方法(1):动态...

2019-07-03 11:19:07 124

原创 求一个数组集合的子集

题目:求一个数组的所有子集。如int a[]={1,2,3}.其子集为有2^n=8 它们是:{},1,2,3,12,13,23,123分析:我们可以使用二进制位标记来做。子集中有某个字符用1标记,不存在用0标记,则:000 {}001 c011 bc100 a101 ac110 ab111 abc则我们可以遍历数值0...

2019-07-01 11:12:35 860

转载 局域网中的主机之间通信

局域网中的主机间通信分为2种:(1)两台主机处于同一网段。(2)两台主机之间处于不同网段。局域网中处于同一网段中的主机通信假如:主机 A 要和主机 B 通信,主机 A 知道主机 B 的IP地址。知道IP地址是通信的前提。首先,要通进行通信,IP地址和MAC地址是必不可少的,IP地址已经知道了,那么主机 A 必须要知道主机 B 的MAC地址,先在ARP表中查看有无该IP地...

2019-06-30 11:57:11 6998 2

原创 恢复二叉搜索树

题目:二叉搜索树中的两个节点被错误地交换。请在不改变其结构的情况下,恢复这棵树。示例 1:输入: [1,3,null,null,2] 1 /3 \ 2输出: [3,1,null,null,2] 3 /1 \ 2示例 2:输入: [3,1,4,null,null,2] 3/ \1 4 / ...

2019-06-29 09:58:05 426

原创 复制带随机指针的链表

题目:给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。要求返回这个链表的深拷贝。示例:输入:{"$id":"1","next":{"$id":"2","next":null,"random":{"$ref":"2"},"val":2},"random":{"$ref":"2"},"val":1}解释:节点 1 的值是 1,它的...

2019-06-25 14:39:52 102

原创 环形链表 II

题目:给定一个链表,返回链表开始入环的第一个节点。如果链表无环,则返回null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。说明:不允许修改给定的链表。示例 1:输入:head = [3,2,0,-4], pos = 1输出:tail connects to node ind...

2019-06-25 08:28:00 151

原创 环形链表

题目:给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。示例2:输入:head = [1,2], pos = ...

2019-06-25 07:47:01 691

原创 相交链表

题目:编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表:在节点 c1 开始相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:相交节点的...

2019-06-25 07:39:15 424

原创 链表的回文结构

题目:对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。给定一个链表的头指针A,请返回一个bool值,代表其是否为回文结构。保证链表长度小于等于900。测试样例:1->2->2->1返回:true分析:用快慢指针找到中间,再反转后半部分,将翻转后的后半部分和前半部分进行一一比较其元素,只要有一个不...

2019-06-24 17:42:35 109

原创 删除链表中重复的结点

题目:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5分析:先伪造一个头节点插在原链表的头上(防止头结点要被删除的情况),然后接下来如果当前节点和下一个节点相同,则要循环找出后续所有与当前值相同的节点,然后让p...

2019-06-24 16:50:55 116

原创 链表分割

题目:分析:方法(1):遍历一次先用x构建两个头节点first和second,遍历原链表然后遇到小于x的就尾插在first后面,遇到大于等于x的就尾插在second后面(即现在有两个独立的链表),当原链表的节点遍历完之后, 将first的尾与second的头连起来(注意找去掉我们当初构建的x节点),并且将second的next域置空,因为它现在是真实的尾节点,最后返回first的...

2019-06-24 15:52:18 142

原创 合并两个有序链表

题目:将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4分析:先判断有没有其中一个 空的,如果其中一个是空的则返回另一个;否则先找一个小的做头(这时候将头保存下来)然后将以此比较两个链表的节点值...

2019-06-24 15:09:22 103

原创 链表中倒数第k个结点

题目:输入一个链表,输出该链表中倒数第k个结点。分析:也是用两个指针来实现先让first指针从头开始先走k步,然后second指针从头开始走,这时让两个指针一起走,当first走到尾时,second就走到倒数第k个节点。需要注意是frist先走k步时,有可能k大于ListNode* FindKthToTail(ListNode* pListHead, unsigned int...

2019-06-24 14:48:14 104

原创 链表的中间结点

题目:给定一个带有头结点head的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。示例 1:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ListNode 类型的对象 ans,这样:ans.val =...

2019-06-24 13:33:37 95

原创 反转链表

题目反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL方法(1):利用三个指针n1,n2,n3,分别指向n2的指向(指向n1),n3是负责往后,n2走完后n1就是新头。需要注意的是当链表没有节点或者只有一个节点时,直接返回原链表即可。ListN...

2019-06-24 12:06:05 82

原创 移除链表元素

题目:删除链表中等于给定值val的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5分析:先在头结点前面加一个节点(防止第一个节点就是要删除的,则要换头),然后用一个指针保留每一个节点的前一个节点,当找到要删的节点,直接让前一个指向后一个即可...

2019-06-24 10:52:41 88

原创 平衡二叉树

题目:输入一棵二叉树,判断该二叉树是否是平衡二叉树。分析:对于一棵树它的左右子树高度差不超过2,并且左右子树本身也是这样的,就说明这棵树是平衡的。class Solution {public: //求一棵树的高度 int TreeHeight(TreeNode* root) { if(root==nullptr) ...

2019-06-23 17:14:10 101

原创 二叉搜索树的第k个结点

题目:给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。分析:二叉树的中序遍历就是从小到大排序的,因此可以将中序遍历的结点放在vector中,然后找第k小只需输出v[k-1]即可class Solution {public: void Inorder(TreeNode* pRoot...

2019-06-23 16:36:09 107

空空如也

空空如也

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

TA关注的人

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