自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

coolwriter的博客

分享才能快乐

  • 博客(91)
  • 资源 (23)
  • 收藏
  • 关注

原创 剑指offer 编程题(59):二叉搜索树的第k个结点

二叉搜索树的第k个结点/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/class Solution {publ

2017-12-31 17:51:38 210

原创 剑指offer 编程题(58):序列化二叉树

请实现两个函数,分别用来序列化和反序列化二叉树class Solution {public: string str; string serializeHelper(TreeNode *root) {//按先序DFS序列化 if(root==NULL){ str+="#,"; return str;

2017-12-31 17:17:12 213

原创 剑指offer 编程题(57):二叉树的之字形打印

请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x)

2017-12-30 12:26:51 187

原创 剑指offer 编程题(56):二叉树的层次遍历

题目描述 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }

2017-12-30 11:02:52 260

原创 剑指offer 编程题(55):中序二叉树的下一个结点

给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。class Solution {public:    TreeLinkNode* GetNext(TreeLinkNode* pNode)    {        if(pNode==nullptr) return nullptr; //情况1.空树,返回空

2017-12-29 22:22:13 225

原创 剑指offer 编程题(54):删除链表中重复的结点

删除链表中重复的结点 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next

2017-12-29 17:06:40 322

原创 剑指offer 编程题(53):链表中环的入口结点

一个链表中包含环,请找出该链表的环的入口结点。断链法 时间复杂度为O(n)两个指针,一个在前面,另一个紧邻着这个指针,在后面。 两个指针同时向前移动,每移动一次,前面的指针的next指向NULL。 也就是说:访问过的节点都断开,最后到达的那个节点一定是尾节点的下一个, 也就是循环的第一个。 这时候已经是第二次访问循环的第一节点了,第一次访问的时候我们已经让它指向了NULL, 所

2017-12-29 12:15:44 287

原创 剑指offer 编程题(52):字符流中第一个不重复的字符

题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符”go”时,第一个只出现一次的字符是”g”。当从该字符流中读出前六个字符“google”时,第一个只出现一次的字符是”l”。 输出描述: 如果当前字符流没有存在出现一次的字符,返回#字符。class Solution{public: //Insert one char from strin

2017-12-28 16:48:25 196

原创 剑指offer 编程题(51):字符串形式的数值判断

请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串”+100”,”5e2”,”-123”,”3.1416”和”-1E-16”都表示数值。 但是”12e”,”1a3.14”,”1.2.3”,”+-5”和”12e+4.3”都不是。class Solution {public: bool isNumeric(char* str) { int flag

2017-12-28 16:26:03 225

原创 剑指offer 编程题(50):乘积数组

题目描述 给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]A[1]…A[i-1]*A[i+1]…*A[n-1]。不能使用除法。class Solution {public: vector<int> multiply(const vector<int>& A) { vector<int> B; i

2017-12-28 11:36:46 234

原创 剑指offer 编程题(49):数组中重复的数字

在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。详见剑指offer27class Solution {public: // Parameters: //

2017-12-27 19:31:11 284

原创 剑指offer 编程题(48):string to int

将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0 输入描述:输入一个字符串,包括数字字母符号,可以为空输出描述:如果是合法的数值表达则返回该数字,否则返回0 示例1 输入+2147483647 1a33 输出2147483647 0class Solution {public: int StrToI

2017-12-27 19:06:06 199

原创 剑指offer 编程题(47):不用算数运算符实现加法

写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。class Solution {public: int Add(int num1, int num2) { int sum = num1 ^ num2; int carry = num1 & num2; while (carry) {

2017-12-27 18:23:15 228

原创 剑指offer 编程题(46):求1+2+3+...+n

题目描述 求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。class Solution {public: int Sum_Solution(int n) { if(n == 1) return n; int sum = n+Sum_Soluti

2017-12-27 16:29:46 400

原创 剑指offer 编程题(45):圆圈中最后剩下的数(约瑟夫环)

class Solution {public:    struct node    {        int no;        node *next;    };    int LastRemaining_Solution(int n, int m)    {        node *head=new node;        head->no=n-1;        h

2017-12-27 15:15:46 269

原创 剑指offer 编程题(44):扑克牌顺子

0代表任意数,判断数组是否为顺子。class Solution {public: bool IsContinuous( vector<int> numbers ) { if(numbers.size() <= 0) { return false; } int arr[14] ={0};

2017-12-26 17:06:26 279

原创 剑指offer 编程题(43):翻转单词顺序列

例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?class Solution {public: string ReverseSentence(string str) { if("" == str) ret

2017-12-26 15:53:35 280

原创 剑指offer 编程题(42):左旋转字符串

汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!class Solution {public: string LeftRotateString(str

2017-12-26 15:47:55 209

原创 剑指offer 编程题(41):查找两数之和一定,乘积最小

题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 输出描述: 对应每个测试案例,输出两个数,小的先输出class Solution {public: vector<int> FindNumbersWithSum(vector<int> array,int sum) { vector<in

2017-12-26 13:24:43 398

原创 剑指offer 编程题(40):和为S的连续正数序列

题目描述 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!输出描述: 输出所有和为S的连续正数序列。序

2017-12-25 21:36:53 225

原创 剑指offer 编程题(39):判断是否是平衡二叉树

AVL的定义   平衡二叉查找树:简称平衡二叉树。由前苏联的数学家Adelse-Velskil和Landis在1962年提出的高度平衡的二叉树,根据科学家的英文名也称为AVL树。它具有如下几个性质:可以是空树。 假如不是空树,任何一个结点的左子树与右子树都是平衡二叉树,并且高度之差的绝对值不超过1   平衡之意,如天平,即两边的分量大约相同。如定义,假如一棵树的左右子树的高度之差超过1,如左子

2017-12-25 19:57:28 200

原创 剑指offer 编程题(38):数组中只出现一次的数字

一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。class Solution {public: void FindNumsAppearOnce(vector<int> data,int* num1,int *num2) { if(data.size() <= 0) { return

2017-12-25 18:26:02 284

原创 剑指offer 编程题(37):求树的高度(深度)

/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/class Solution {public: int

2017-12-25 15:21:40 289

原创 剑指offer 编程题(36):数字在排序数组中出现的次数

题目描述 统计一个数字在排序数组中出现的次数。可以按统计字符的方法 与剑指offer 编程题(27):数组中出现次数统计解题思路和方法一样 http://blog.csdn.net/coolwriter/article/details/78867632 剑指offer 编程题(33):第一个只出现一次的字符 http://blog.csdn.net/coolwriter/article/d

2017-12-25 14:52:44 306

原创 剑指offer 编程题(35):链表公共点

题目描述 输入两个链表,找出它们的第一个公共结点。 /* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ class Solution { public: ListNod

2017-12-24 12:18:04 156

原创 剑指offer 编程题(34):数组中的逆序对

在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007 输入描述:题目保证输入的数组中没有的相同的数字 数据范围: 对于%50的数据,size<=10^4 对于%75的数据,size<=10^5 对于%100的数据,s

2017-12-24 10:25:43 221

原创 剑指offer 编程题(33):第一个只出现一次的字符

与剑指offer 编程题(27):数组中出现次数统计解题思路和方法一样 http://blog.csdn.net/coolwriter/article/details/78867632 题目描述 在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置class Solution {public: int FirstNotRepea

2017-12-23 16:51:00 236

原创 剑指offer 编程题(32):第N个丑数

题目描述 把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数任意一个丑数一定是另一个丑数乘以2或3或5得到的,我们可以使用一个数组将已经确认为丑数的数按照从小到大的顺序记录下来,每个丑数都是前面的丑数乘以2、3或5得来的。      如何确保数组中的丑数是排好序的?假设

2017-12-23 12:29:53 471

原创 剑指offer 编程题(31):把数组排成最小的数返回string

输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。class Solution {public: static bool compare( const string &st1,const string &st2) {

2017-12-22 21:39:55 225

原创 剑指offer 编程题(30):自然数中出现1的次数

暴力破解法:class Solution {public: int NumberOf1Between1AndN_Solution(int n) { int count = 0; for(int i=0; i<=n; i++){ int temp = i; //如果temp的任意位为1则count++

2017-12-22 16:59:15 395

原创 剑指offer 编程题(29):连续子序列和最大

class Solution {public: int FindGreatestSumOfSubArray(vector<int> array) { int sum = array[0]; int maxsum = array[0]; for(int i = 1;i<array.size();i++){ sum = s

2017-12-22 16:10:24 422

原创 剑指offer 编程题(28):最小的K个数

题目描述 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。class Solution {public: vector<int> GetLeastNumbers_Solution(vector<int> input, int k) { vector<int> res; int

2017-12-21 22:36:06 223

原创 剑指offer 编程题(27):数组中出现次数统计

题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0class Solution {public: int MoreThanHalfNum_Solution(vector<int> numbers) { if(n

2017-12-21 20:52:34 444

原创 剑指offer 编程题(26):字符串全排列

题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。递归做法有时候递归的效率使得我们不得不考虑除此之外的其他实现,很多把递归算法转换到非递归形式的算法是比较难的,这个时候我们不要忘记了标准模板库STL已经实现的那些算法,这让我们非常轻松。 STL有一个函数next_pe

2017-12-21 11:28:19 393

转载 最大连续子序列和

最大连续子序列和问题对于形如:int arr[] = { 1, -5, 3, 8, -9, 6 };的数组,求出它的最大连续子序列和。若数组中全部元素都是正数,则最大连续子序列和即是整个数组。若数组中全部元素都是负数,则最大连续子序列和即是空序列,最大和就是0。方法一用sum[i,j]表示arr[i]到arr[j]的和,则显然可以通过

2017-12-21 10:43:39 320

转载 二叉搜索树

定义二叉搜索树(Binary Search Tree)或称二叉查找树,也称二叉排序树(Binary Sort Tree)。它或者是一棵空树,或者是具有下列性质的二叉树:若左子树不空,则左子树上所有节点的值均小于它的根节点的值;若右子树不空,则右子树上所有节点的值均大于它的根节点的值;左、右子树也分别为二叉搜索树;性质二叉搜索树与普通二叉树相比,有一些优秀的特征或性质

2017-12-21 10:40:40 245

转载 二叉树前序、中序、后序遍历非递归写法

前言在前两篇文章二叉树和二叉搜索树中已经涉及到了二叉树的三种遍历。递归写法,只要理解思想,几行代码。可是非递归写法却很不容易。这里特地总结下,透彻解析它们的非递归写法。其中,中序遍历的非递归写法最简单,后序遍历最难。我们的讨论基础是这样的:    [cpp] view plain copy//Binary Tree Node  

2017-12-21 10:37:43 270

原创 剑指offer 编程题(25):二叉树搜索与双向链表

题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。在二叉搜索树中,每个结点都有两个分别指向其左、右子树的指针,左子树结点的值总是小于父结点的值,右子树结点的值总是大于父结点的值。而在双向链表中,每个结点也有两个指针,它们分别指向前一个结点和后一个结点。所以这两种数据结构的结点是一致,二叉搜索树之所以为二叉搜索树,双向链表之所以为

2017-12-20 16:28:51 284

原创 剑指offer 编程题(24):链表复制

题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)递归法class Solution {public: RandomListNode* Clone(RandomListNode* pHead) {

2017-12-20 14:27:12 220

原创 二叉树最大路径之和

Binary Tree Maximum Path Sum 解题思路: 这道题是求树的路径和的题目,不过和平常不同的是这里的路径不仅可以从根到某一个结点, 而且路径可以从左子树某一个结点,然后到达右子树的结点,就像题目中所说的可以起始和终结于任何结点。 在这里树没有被看成有向图,而是被当成无向图来寻找路径。 因为这个路径的灵活性,我们需要对递归返回值进行一些调整,而不是通常的返回要求的结果。

2017-12-20 11:33:45 408

大约100个编程高频题目

100个编程高频题目

2018-10-13

redis面试题目

redis面试题目

2018-10-13

计算机网络面试题

计算机网络面试

2018-10-13

计算机网络面试

计算机网络面试

2018-10-13

linux复习,秋招,春招,面试

linux复习,秋招,春招,面试

2018-10-13

epoll+线程池

Linux + C + Epoll实现高并发服务器,运用线程池技术。

2018-06-12

简易QT联机五子棋项目

简易QT联机五子棋项目,实现基于TCP连接的局域网人人联机对战五子棋。

2018-06-12

iTOP-4412-LinuxC-摄像头ov5640-500W测试方法.zip

iTOP-4412-LinuxC-摄像头ov5640-500W测试方法.zip iTOP-4412-LinuxC-摄像头ov5640-500W测试方法.zip

2018-02-04

iTOP-4412-Android-485测试例程-精英板.zip

iTOP-4412-Android-485测试例程-精英板.zip RS485通信例程

2018-02-04

iTOP-开发板-串口控制台无法使用vi编辑器解决办法

iTOP-开发板-串口控制台无法使用vi编辑器解决办法.zip

2018-02-04

iTOP-4412内核和Android驱动以及Android测试例程

iTOP-4412-Android4.0-usb-wifi(360二代)内核和Android驱动以及Android测试例程.zip

2018-02-04

python冒泡排序程序

python冒泡排序程序,优化代码。。,python冒泡排序程序python冒泡排序程序python冒泡排序程序python冒泡排序程序python冒泡排序程序

2018-02-04

树莓派天气预报

树莓派天气预报,天气显示。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

2017-09-01

树莓派摄像头资料和例程

树莓派摄像头资料和例程。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

2017-09-01

putty远程连接工具

putty远程连接工具,命令行界面。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

2017-09-01

Win32DiskImager树莓派写入镜像工具

Win32DiskImager树莓派写入镜像工具,向SD卡写入镜像系统。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

2017-09-01

树莓派串口通信程序

树莓派串口通信程序,串口发送字符或数据。

2017-09-01

HC-05主从机一体蓝牙模块资料

HC-05主从机一体蓝牙模块资料,指令集和操作说明

2017-04-03

霍尔传感器模块使用说明书+例子程序

霍尔传感器模块使用说明书+例子程序,还有原理图,芯片手册

2017-04-03

霍尔传感器3144芯片手册

霍尔传感器3144芯片

2017-04-03

空空如也

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

TA关注的人

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