自定义博客皮肤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的博客

分享才能快乐

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

原创 两种冒泡排序的比较及冒泡算法优化

第一种:void bubbleSort(int array[],int len){ //循环的次数为数组长度减一,剩下的一个数不需要排序 for(int i=0;i1;++i){ bool noswap=true; //循环次数为待排序数第一位数冒泡至最高位的比较次数 for(int j=0;j1;++j){

2018-01-30 19:49:02 354

原创 旋转数组

题目描述 有一个排过序的数组,包含n个整数,但是这个数组向左进行了一定长度的移位,例如,原数组为[1,2,3,4,5,6],向左移位5个位置即变成了[6,1,2,3,4,5],现在对于移位后的数组,需要查找某个元素的位置。请设计一个复杂度为log级别的算法完成这个任务。 给定一个int数组A,为移位后的数组,同时给定数组大小n和需要查找的元素的值x,请返回x的位置(位置从零开始)。保证数组中元

2018-01-30 17:02:31 184

原创 变位词排序(去除变位词)

题目描述 请编写一个方法,对一个字符串数组进行排序,将所有变位词合并,保留其字典序最小的一个串。这里的变位词指变换其字母顺序所构成的新的词或短语。例如”triangle”和”integral”就是变位词。 给定一个string的数组str和数组大小int n,请返回排序合并后的数组。保证字符串串长小于等于20,数组大小小于等于300。 测试样例: [“ab”,”ba”,”abc”,”cba

2018-01-30 16:44:52 346

原创 约瑟夫问题2

题目描述 约瑟夫问题是一个著名的趣题。这里我们稍稍修改一下规则。有n个人站成一列。并从头到尾给他们编号,第一个人编号为1。然后从头开始报数,第一轮依次报1,2,1,2…然后报到2的人出局。接着第二轮再从上一轮最后一个报数的人开始依次报1,2,3,1,2,3…报到2,3的人出局。以此类推直到剩下以后一个人。现在需要求的即是这个人的编号。 给定一个int n,代表游戏的人数。请返回最后一个人的编号

2018-01-30 16:15:29 659

原创 圆圈中最后剩下的数(约瑟夫环)

题目描述 约瑟夫问题是一个非常著名的趣题,即由n个人坐成一圈,按顺时针由1开始给他们编号。然后由第一个人开始报数,数到m的人出局。现在需要求的是最后一个出局的人的编号。 给定两个int n和m,代表游戏的人数。请返回最后一个出局的人的编号。保证n和m小于等于1000。 测试样例: 5 3 返回:4class Joseph {public: int getResult(i...

2018-01-30 15:56:36 346

转载 C++面试

1,关于动态申请内存 答:内存分配方式三种: (1)从静态存储区域分配:内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。 全局变量,static变量。 (2)在栈上创建:在执行函数时,函数内局部变量的存储单元都可以在栈上创建, 函数执行结束时这些存储单元自动被释放。 栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。 (3)用malloc或

2018-01-30 10:23:03 957 1

原创 堆箱子 叠罗汉

有一堆箱子,每个箱子宽为wi,长为di,高为hi,现在需要将箱子都堆起来,而且为了使堆起来的箱子不到,上面的箱子的宽度和长度必须小于下面的箱子。请实现一个方法,求出能堆出的最高的高度,这里的高度即堆起来的所有箱子的高度之和。 给定三个int数组w,l,h,分别表示每个箱子宽、长和高,同时给定箱子的数目n。请返回能堆成的最高的高度。保证n小于等于500。 测试样例: [1,1,1],[1,1,...

2018-01-27 17:38:34 1183

原创 n皇后问题

题目描述 请设计一种算法,解决著名的n皇后问题。这里的n皇后问题指在一个nxn的棋盘上放置n个棋子,使得每行每列和每条对角线上都只有一个棋子,求其摆放的方法数。 给定一个int n,请返回方法数,保证n小于等于15 测试样例: 1 返回:1class Queens {public: int nQueens(int n) { // write code h

2018-01-27 16:35:04 275

原创 硬币表示

题目描述 有数量不限的硬币,币值为25分、10分、5分和1分,请编写代码计算n分有几种表示法。 给定一个int n,请返回n分有几种表示法。保证n小于等于100000,为了防止溢出,请将答案Mod 1000000007。 测试样例: 6 返回:2递归方法int MakeChangeCore(int n,int denom) { int next_denom=0

2018-01-27 15:40:37 336

原创 洪水填充

题目描述 在一个nxm矩阵形状的城市里爆发了洪水,洪水从(0,0)的格子流到这个城市,在这个矩阵中有的格子有一些建筑,洪水只能在没有建筑的格子流动。请返回洪水流到(n - 1,m - 1)的最早时间(洪水只能从一个格子流到其相邻的格子且洪水单位时间能从一个格子流到相邻格子)。 给定一个矩阵map表示城市,其中map[i][j]表示坐标为(i,j)的格子,值为1代表该格子有建筑,0代表没有建筑。

2018-01-27 14:19:03 1259

转载 TCP协议

为什么会有TCP/IP协议在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别。就好像圣经中上帝打乱了各地人的口音,让他们无法合作一样。计算机使用者意识到,计算机只是单兵作战并不会发挥太大的作用。只有把它们联合起来,电脑才会发挥出它最大的潜力。于是人们就想方设法的用电线把电脑连接到了一起。但是简单的连到一起是远远不够的,就好像

2018-01-27 10:56:05 285

原创 括号匹配

题目描述 对于一个字符串,请设计一个算法,判断其是否为一个合法的括号串。 给定一个字符串A和它的长度n,请返回一个bool值代表它是否为一个合法的括号串。 测试样例:"(()())",6返回:true测试样例:"()a()()",7返回:false测试样例:"()(()()",7返回:falseclass Parenthesis {public: bo

2018-01-25 22:52:50 149

原创 字符串全排列以及数组全排列

题目描述 编写一个方法,确定某字符串的所有排列组合。 给定一个string A和一个int n,代表字符串和其长度,请返回所有该字符串字符的排列,保证字符串长度小于等于11且字符串中字符均为大写英文字符,排列中的字符串按字典序从大到小排序。(不合并重复字符串) 测试样例: “ABC” 返回:[“CBA”,”CAB”,”BCA”,”BAC”,”ACB”,”ABC”]class Pe

2018-01-25 22:11:50 535

原创 A的所有非空子集

题目描述 请编写一个方法,返回某集合的所有非空子集。 给定一个int数组A和数组的大小int n,请返回A的所有非空子集。保证A的元素个数小于等于20,且元素互异。各子集内部从大到小排序,子集之间字典逆序排序,见样例。 测试样例: [123,456,789] 返回:{[789,456,123],[789,456],[789,123],[789],[456 123],[456],[123]...

2018-01-25 19:30:41 2017

原创 魔术索引二

题目描述 在数组A[0..n-1]中,有所谓的魔术索引,满足条件A[i]=i。给定一个不下降序列,元素值可能相同,编写一个方法,判断在数组A中是否存在魔术索引。请思考一种复杂度优于o(n)的方法。 给定一个int数组A和int n代表数组大小,请返回一个bool,代表是否存在魔术索引。 测试样例: [1,1,3,4,5] 返回:trueclass MagicIndex {pub

2018-01-25 18:53:33 212

原创 魔术索引

题目描述 在数组A[0..n-1]中,有所谓的魔术索引,满足条件A[i]=i。给定一个升序数组,元素值各不相同,编写一个方法,判断在数组A中是否存在魔术索引。请思考一种复杂度优于o(n)的方法。 给定一个int数组A和int n代表数组大小,请返回一个bool,代表是否存在魔术索引。 测试样例: [1,2,3,4,5] 返回:falseclass MagicIndex {pub

2018-01-25 18:44:11 247

原创 机器人走方格障碍

题目描述 有一个XxY的网格,一个机器人只能走格点且只能向右或向下走,要从左上角走到右下角。请设计一个算法,计算机器人有多少种走法。注意这次的网格中有些障碍点是不能走的。 给定一个int[][] map(C++ 中为vector >),表示网格图,若map[i][j]为1则说明该点不是障碍点,否则则为障碍。另外给定int x,int y,表示网格的大小。请返回机器人从(0,0)走到(x - 1

2018-01-25 17:31:05 870

原创 机器人走方格

题目描述 有一个XxY的网格,一个机器人只能走格点且只能向右或向下走,要从左上角走到右下角。请设计一个算法,计算机器人有多少种走法。 给定两个正整数int x,int y,请返回机器人的走法数目。保证x+y小于等于12。 测试样例: 2,2 返回:2/ 题目要求走的是大格子而不是网格线的交点,所以有两种走法。 // 二维数组用于计算走到当前格子的走法总数,为其上方格子走法总数与其左

2018-01-25 16:16:08 1574 1

原创 上楼梯,青蛙跳

题目描述 有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶、3阶。请实现一个方法,计算小孩有多少种上楼的方式。为了防止溢出,请将结果Mod 1000000007 给定一个正整数int n,请返回一个数,代表上楼的方式数。保证n小于等于100000。 测试样例: 1 返回:1class GoUpstairs {public:    int countWays(int n

2018-01-25 16:06:08 553

原创 丑数以及类似丑数素因子问题

题目描述 有一些数的素因子只有3、5、7,请设计一个算法,找出其中的第k个数。 给定一个数int k,请返回第k个数。保证k小于等于100。 测试样例: 3 返回:7class KthNumber {public: int findKth(int k) { int index = k; if (index 5)return index;

2018-01-25 15:51:29 357

原创 穿过点最多的直线

题目描述 在二维平面上,有一些点,请找出经过点数最多的那条线。 给定一个点集vectorp和点集的大小n,没有两个点的横坐标相等的情况,请返回一个vector,代表经过点数最多的那条直线的斜率和截距。/*struct Point { int x; int y; Point() : x(0), y(0) { } Point

2018-01-25 12:57:59 1535 1

原创 直线平分正方形

题目描述 在二维平面上,有两个正方形,请找出一条直线,能够将这两个正方形对半分。假定正方形的上下两条边与x轴平行。 给定两个vecotrA和B,分别为两个正方形的四个顶点。请返回一个vector,代表所求的平分直线的斜率和截距,保证斜率存在。 测试样例: [(0,0),(0,1),(1,1),(1,0)],[(1,0),(1,1),(2,0),(2,1)] 返回:[0.0,0.5]/

2018-01-25 11:15:30 467

原创 从连续二进制中找出缺失的数

题目描述 数组A包含了0到n的所有整数,但其中缺失了一个。对于这个问题,我们设定限制,使得一次操作无法取得数组number里某个整数的完整内容。唯一的可用操作是询问数组中第i个元素的二进制的第j位(最低位为第0位),该操作的时间复杂度为常数,请设计算法,在O(n)的时间内找到这个数。 给定一个数组number,即所有剩下的数按从小到大排列的二进制各位的值,如A[0][1]表示剩下的第二个数二进

2018-01-24 19:58:11 420

原创 交换一个数的二进制的奇数位和偶数位

题目描述 请编写程序交换一个数的二进制的奇数位和偶数位。(使用越少的指令越好) 给定一个int x,请返回交换后的数int。 测试样例: 10 返回:5用0xAAAAAAAA与x相与求的奇数位上数字(偶数位上数字为0) 用0x 55555555 与x相与求的偶数位上数字(奇数位上数字为0)oddVal右移一位 even左移一位 相加即可。class Exchange {public:

2018-01-24 19:35:49 881

原创 二进制小数

题目描述 有一个介于0和1之间的实数,类型为double,返回它的二进制表示。如果该数字无法精确地用32位以内的二进制表示,返回“Error”。 给定一个double num,表示0到1的实数,请返回一个string,代表该数的二进制表示或者“Error”。 测试样例: 0.625 返回:0.101class BinDecimal {public: string print

2018-01-24 17:09:05 278

原创 二进制插入

题目描述 有两个32位整数n和m,请编写算法将m的二进制数位插入到n的二进制的第j到第i位,其中二进制的位数从低位数到高位且以0开始。 给定两个数int n和int m,同时给定int j和int i,意义如题所述,请返回操作后的数,保证n的第j到第i位均为零,且m的二进制位数小于等于i-j+1。 测试样例: 1024,19,2,6 返回:1100class BinInsert

2018-01-24 11:20:50 297 1

原创 leetcode 235 Lowest Common Ancestor of a Binary Search Tree 二叉搜索树的最小共同父节点

Given a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in the BST.According to the definition of LCA on Wikipedia: “The lowest common ancestor is defined between

2018-01-24 11:09:23 176

原创 LeetCode 236 最近公共祖先 Lowest Common Ancestor of a Binary Tree

题目:找p和q的最近公共祖先 Given a binary tree, find the lowest common ancestor (LCA) of two given nodes in the tree.According to the definition of LCA on Wikipedia: “The lowest common ancestor is defined betw...

2018-01-24 10:59:51 332

原创 中序遍历下个节点

题目描述 请设计一个算法,寻找二叉树中指定结点的下一个结点(即中序遍历的后继)。 给定树的根结点指针TreeNode* root和结点的值int p,请返回值为p的结点的后继结点的值。保证结点的值大于等于零小于等于100000且没有重复值,若不存在后继返回-1。/*struct TreeNode { int val; struct TreeNode *left;

2018-01-23 22:58:52 415

原创 判断BST树,查找二叉树

题目描述 请实现一个函数,检查一棵二叉树是否为二叉查找树。 给定树的根结点指针TreeNode* root,请返回一个bool,代表该树是否为二叉查找树方法一,中序遍历存入vector看是否排好序/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; T

2018-01-23 11:54:22 631

原创 二叉树单层节点组成链表

题目描述 对于一棵二叉树,请设计一个算法,创建含有某一深度上所有结点的链表。 给定二叉树的根结点指针TreeNode* root,以及链表上结点的深度,请返回一个链表ListNode,代表该深度上所有结点的值,请按树上从左往右的顺序链接,保证深度不超过树的高度,树上结点的值为非负整数且不超过100000。/*struct TreeNode { int val; struc...

2018-01-22 17:39:42 206

原创 创建二叉查找树,返回最小高度

题目描述 对于一个元素各不相同且按升序排列的有序序列,请编写一个算法,创建一棵高度最小的二叉查找树。 给定一个有序序列int[] vals,请返回创建的二叉查找树的高度。class MinimalBST {public: TreeNode *buildBST(vectorint> vals,int left,int right) { if (left > ri

2018-01-22 16:37:12 588

原创 有向路径检查

对于一个有向图,请实现一个算法,找出两点之间是否存在一条路径。 给定图中的两个结点的指针UndirectedGraphNode* a,UndirectedGraphNode* b(请不要在意数据类型,图是有向图),请返回一个bool,代表两点之间是否存在一条路径(a到b或b到a)。/*struct UndirectedGraphNode { int label; vec

2018-01-22 15:55:24 213

原创 猫狗收养所

有家动物收容所只收留猫和狗,但有特殊的收养规则,收养人有两种收养方式,第一种为直接收养所有动物中最早进入收容所的,第二种为选择收养的动物类型(猫或狗),并收养该种动物中最早进入收容所的。 给定一个操作序列int[][2] ope(C++中为vector>)代表所有事件。若第一个元素为1,则代表有动物进入收容所,第二个元素为动物的编号,正数代表狗,负数代表猫;若第一个元素为2,则代表有人收养

2018-01-22 14:49:48 602 1

原创 双栈排序

从大到小排列: 原数组push到栈a,栈b为空。此为初始状态。 如果栈为空,栈a顶弹出,压入栈b。如果栈a顶大于栈b顶,接着栈a顶弹出,压入栈b。 如果栈a顶小于栈b顶,则栈a顶弹出,保存为临时变量,一个一个从栈b弹出元素临时移动到栈a,直到这个临时变量大于栈b顶,此时压入栈b,再将刚才移动到栈a的元素弹出恢复压入到栈b。直到栈a为空。class TwoStacks {public:

2018-01-21 22:23:31 260

原创 链表回文

/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) {}};*/class Palindrome {public: bool isPalindrome(ListNode* pHead) { // write c

2018-01-21 14:03:06 149

原创 链表A+B

/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) {}};*/class Plus {public: ListNode* plusAB(ListNode* a, ListNode* b) { ListNode* he

2018-01-21 13:29:36 288

原创 链表分割

编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前 给定一个链表的头指针 ListNode* pHead,请返回重新排列后的链表的头指针。注意:分割以后保持原来的数据顺序不变。/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x...

2018-01-20 17:43:40 165

原创 反转字符串

题目描述 假定我们都知道非常高效的算法来检查一个单词是否为其他字符串的子串。请将这个算法编写成一个函数,给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成,要求只能调用一次检查子串的函数。 给定两个字符串s1,s2,请返回bool值代表s2是否由s1旋转而成。字符串中字符为英文字母和空格,区分大小写,字符串长度小于等于1000。 测试样例: “Hello world”,”wor

2018-01-20 15:03:26 170

原创 行列清零

题目描述 请编写一个算法,若N阶方阵中某个元素为0,则将其所在的行与列清零。 给定一个N阶方阵int[]”>mat和矩阵的阶数n,请返回完成操作后的int[][]方阵(C++中为vector>),保证n小于等于300,矩阵中的元素为int范围内。 测试样例: [[1,2,3],[0,1,2],[0,0,1]] 返回:[[0,0,3],[0,0,0],[0,0,0]]class Cle

2018-01-19 22:33:54 247

大约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关注的人

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