
数据结构与算法的C++实现
文章平均质量分 86
大白技术控
魔都某互联网大厂高级软件工程师,早期AI玩家,技术宅!
展开
-
C++版 - 剑指offer 面试题46:求1+2+3+...+n(不能使用乘除法、循环语句及条件判断语句) 题解
剑指offer 面试题: 求1+2+3+...+n 提交网址: http://www.nowcoder.com/practice/7a0da8fc483247ff8800059e12d7caf1?tpId=13&tqId=11200 参与人数:2426 时间限制:1秒 空间限制:32768K 题目描述求1+2+3+...+n,要求不能使用乘除法、for、wh...原创 2016-04-24 08:38:22 · 2462 阅读 · 2 评论 -
C++版 - 剑指Offer 面试题11:数的整数次方(Leetcode50. Pow(x, n))【C库函数pow模拟】题解
面试题:数的整数次方 温馨提示:本技术博客的相关代码将会在github(https://github.com/yanglr)中同步更新,敬请star和fork... 题目:实现函数double Power(double base, int exponent), 求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。其中base为浮点数,而exponent为整...原创 2016-05-07 00:22:27 · 4287 阅读 · 0 评论 -
C++版 - 剑指offer面试题28: 字符串的排列
题目: 字符串的排列热度指数:5777 时间限制:1秒 空间限制:32768K本题知识点: 字符串题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 结果请按字母顺序输出。 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,原创 2016-09-28 16:44:42 · 1824 阅读 · 3 评论 -
华为oj之【中级】单词倒排
题目: 【中级】单词倒排热度指数:1593时间限制:1秒空间限制:32768K本题知识点: 字符串 排序题目描述对字符串中的所有单词进行倒排。说明:1、每个单词是以26个大写或小写英文字母构成;2、非构成单词的字符均视为单词间隔符;3、要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符;4、每个单词最长20个字母;输入描述:输入一原创 2016-09-28 16:22:57 · 1316 阅读 · 0 评论 -
华为oj之字符串分割
题目: 字符串分隔热度指数:6139 时间限制:1秒 空间限制:32768K本题知识点: 字符串题目描述•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组; •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。输入描述:连续输入字符串(输入2次,每个字符串长度小于100)输出描述:输原创 2016-09-28 16:14:50 · 1412 阅读 · 0 评论 -
华为oj之提取不重复的整数
题目: 提取不重复的整数热度指数:4740 时间限制:1秒 空间限制:32768K本题知识点: 数组题目描述输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。输入描述:输入一个int型整数输出描述:按照从右向左的阅读顺序,返回一个不含重复数字的新的整数输入例子:9876673输出例子:37689在线提交网址: http://www.nowcoder.原创 2016-09-28 16:12:46 · 865 阅读 · 1 评论 -
华为oj之(整型)数字颠倒
题目: 数字颠倒热度指数:5722 时间限制:1秒 空间限制:32768K本题知识点: 字符串题目描述描述:输入一个整数,将这个整数以字符串的形式逆序输出程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001输入描述:输入一个int整数输出描述:将这个整数以字符串的形式逆序输出输入例子:1516000输出例子:0006151在线提交网址: h原创 2016-09-28 16:09:05 · 957 阅读 · 0 评论 -
华为oj之句子逆序
题目: 句子逆序热度指数:4483 时间限制:1秒 空间限制:32768K本题知识点: 数组将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后“boy a am I” 所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符接口说明/*** 反转句子 * @param sentence 原句子 * @return 反转后的句子 *原创 2016-09-28 16:07:15 · 790 阅读 · 0 评论 -
华为oj之等差数列前n项和
题目: 等差数列热度指数:1010 时间限制:1秒 空间限制:32768K题目描述功能: 对于等差数列 2,5,8,11,14…输入: 正整数N >0输出: 求等差数列前N项和返回: 转换成功返回 0 ,非法输入与异常返回-1输入描述:输入一个正整数。输出描述:输出一个相加后的整数。输入例子:2输出例子:7在线提交网址: http://www.nowcoder.com/prac原创 2016-09-28 16:02:10 · 1279 阅读 · 0 评论 -
华为oj之最小公倍数
题目: 求最小公倍数热度指数:1842 时间限制:1秒 空间限制:32768K题目描述正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。输入描述:输入两个正整数A和B。输出描述:输出A和B的最小公倍数。输入例子:5 7输出例子:35在线提交网址: http://www.nowcoder.com/practice/22原创 2016-09-28 16:00:04 · 1317 阅读 · 0 评论 -
华为oj之字符统计(按出现次数由多到少的顺序进行输出)
题目: 字符统计热度指数:875 时间限制:1秒 空间限制:32768K本题知识点: 字符串 排序题目描述如果统计的个数相同,则按照ASII码由小到大排序输出 。如果有其他字符,则对这些字符不用进行统计。实现以下接口: 输入一个字符串,对字符中的各个英文字符,数字,空格进行统计(可反复调用) 按照统计个数由多到少输出统计结果,如果统计的个数相同,则按照ASII码由小到大排序输出原创 2016-09-28 15:56:27 · 3331 阅读 · 0 评论 -
华为oj之计算字符个数
题目: 计算字符个数热度指数:8276 时间限制:1秒 空间限制:32768K本题知识点: 字符串题目描述写出一个程序,接受一个有字母和数字以及空格组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。输入描述:输入一个有字母和数字以及空格组成的字符串,和一个字符。输出描述:输出输入字符串中含有该字符的个数。输入例子:ABCDEFA输出例子:1在线提交网址:原创 2016-09-28 15:53:03 · 1095 阅读 · 0 评论 -
华为oj之质数因子
题目: 质数因子热度指数:5143 时间限制:1秒 空间限制:32768K本题知识点: 排序题目描述功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 )最后一个数后面也要有空格详细描述:函数接口说明:public String getResult(long ulDataInput)输入参数:long ulDataInput:输入原创 2016-09-28 15:51:12 · 1691 阅读 · 0 评论 -
华为oj之求int型正整数在内存中存储时1的个数
题目: 求int型正整数在内存中存储时1的个数热度指数:4427 时间限制:1秒 空间限制:32768K题目描述输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。输入描述: 输入一个整数(int类型)输出描述: 这个数转换成2进制后,输出1的个数输入例子:5输出例子:2在线提交网址: http://www.nowcoder.com/practice/440原创 2016-09-28 15:49:27 · 2112 阅读 · 0 评论 -
华为oj之字符串反转
题目: 字符串反转热度指数:4940 时间限制:1秒 空间限制:32768K本题知识点: 字符串题目描述写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串。例如:输入描述:输入N个字符输出描述:输出该字符串反转后的字符串输入例子:abcd输出例子:dcba在线提交网址: http://www.nowcoder.com/practice/e45e078701ab4e4cb4原创 2016-09-28 15:44:43 · 1058 阅读 · 0 评论 -
华为oj之字符串最后一个单词的长度
题目: 字符串最后一个单词的长度热度指数:9697 时间限制:1秒 空间限制:32768K 本题知识点: 字符串题目描述计算字符串最后一个单词的长度,单词以空格隔开。输入描述:一行字符串,非空,长度小于5000。输出描述:整数N,最后一个单词的长度。输入例子:hello world输出例子:5在线提交网址: http://www.nowcoder.com/practice/8c949e原创 2016-09-28 15:25:52 · 742 阅读 · 1 评论 -
C++中的to_string()函数[C++11支持]
C++ -> 字符串库 -> std::basic_string定义于头文件 std::string to_string( int value ); (1) (C++11起) std::string to_string( long value ); (2) (C++11起) std::string to_string( long long val转载 2016-09-29 20:43:15 · 134316 阅读 · 1 评论 -
携程校招2017编程题之股票最大利润
题目: 股票利润题目描述有一个数组来存储一支股票每天的价格,例如第i天的股票价格为prices[i]。 现在我们至多做一次股票交易,最多买入一次,卖出一次,设计一个算法求我们买股票能得到的最大收益。输入:价格序列, 用,隔开输出:最大的可能利润输入例子:2,3,2,4输出例子:2分析:只需要找出最大的差值即可, 即max(prices[j] - prices[i]), i#include<cst原创 2016-09-28 16:20:57 · 5074 阅读 · 0 评论 -
C++版 - Leetcode 400. Nth Digit解题报告
leetcode 400. Nth Digit在线提交网址: https://leetcode.com/problems/nth-digit/Total Accepted: 4356Total Submissions: 14245Difficulty: EasyFind the *n*th digit of the infinite integer sequence 1, 2, 3, 4,原创 2016-09-29 16:48:42 · 2105 阅读 · 0 评论 -
华为校招2016.09机试 第2题: 字符串查找
华为校招2016.09机试第2题: 字符串查找 描述: 输入两个字符串,查找字符串1中与字符串2最先匹配的内容,将匹配的字符串输出。字符串2支持?通配符,?代表任意一个字符。 已知字符串2不可能出现只有?的情况。 字符串1和字符串2的最大长度为128。 运行时间限制: 无限制 内存限制: 无限制 输入: 待查找字符串,关键字字符串 输出: 输出字符串 样例输原创 2016-10-20 11:11:54 · 1393 阅读 · 0 评论 -
C++版 - Leetcode 15. 3Sum 题解
leetcode 15. 3Sum在线提交网址: https://leetcode.com/problems/3sum/Total Accepted: 158822Total Submissions: 777492Difficulty: MediumContributors: AdminGiven an array S of n integers, are there elements a原创 2016-11-06 16:47:37 · 1084 阅读 · 0 评论 -
堆排序原理及其实现(C++)
堆排序原理及其实现(C++)1 堆排序的引入 我们知道`简单选择排序`的时间复杂度为O(n^2),熟悉各种排序算法的朋友都知道,这个时间复杂度是很大的,所以怎样减小简单选择排序的时间复杂度呢?从上文分析中我们知道简单选择排序主要操作是进行关键字的比较,所以怎样减少比较次数就是改进的关键。 简单选择排序中第i趟需要进行`n-i`次比较,如果我们用到前面已排好的序列`a[1...i-1]`是否可以减原创 2016-10-18 21:48:02 · 40418 阅读 · 7 评论 -
华为校招2016.09机试 第3题: 装满篮子
华为校招2016.09机试第3题: 装满篮子 描述: 假设一个篮子最大载重为W,要求从多个不同重量物品中挑选出部分,使得其重量之和刚好等于W。输入若干个正整数,其中第一个数值为篮子载重,后面若干个数值表示不同物品的重量,请判断是否存在方案能刚好装满篮子。存在装满篮子的方案则输出YES,并按照输入顺序输出装入篮子的物品重量,以空格隔开;若不存在则输出NO。备注:本题中只存在一种装载方案。 运原创 2016-10-20 11:17:55 · 1400 阅读 · 0 评论 -
华为校招2016.09机试 第1题: 字符串按指定长度重新分割
华为校招2016.09机试第1题: 字符串按指定长度重新分割 描述: 输入M个字符串,请按指定长度N拆分每个字符串,输出新的字符串。长度不是N整数倍的字符串请在后面补数字0。 运行时间限制: 无限制 内存限制: 无限制 输入: 输入整数M,N;以英文逗号分隔。每行一个字符串,共M个字符串,每行字符串小于50个字符 输出: 按指定长度N拆分每个字符串,输出拆分后字原创 2016-10-20 11:05:15 · 1127 阅读 · 0 评论 -
C++中std::getline()函数的用法
std::getline在头文件 中定义.getline从输入流中读取字符, 并把它们转换成字符串.1) 的行为就像UnformattedInputFunction, 除了input.gcount()不会受到影响.在构造和检查岗哨对象的, 执行以下操作:1) 调用str.erase()2) input并把它们添加到str的字符提取出来, 直到发生以下情况之一中列出的顺序进行检查a) 上input文原创 2016-09-28 16:18:17 · 31225 阅读 · 1 评论 -
C++版 - 剑指offer面试题14: 调整数组顺序使奇数位于偶数前面
题目: 调整数组顺序使奇数位于偶数前面热度指数:11843 时间限制:1秒 空间限制:32768K本题知识点: 数组题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。分析:不考虑空间损耗, 可以考虑使用odd和even两个vector分别存放基数和偶数原创 2016-09-28 16:30:04 · 1406 阅读 · 0 评论 -
C++版 - 剑指offer 面试题23:从上往下打印二叉树(二叉树的层次遍历BFS) 题解
剑指offer 面试题23:从上往下打印二叉树参与人数:4853 时间限制:1秒 空间限制:32768K题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。分析:此题即为二叉树的BFS,使用队列可以解决。AC代码:#include#include#includeusing namespace std;struct原创 2016-07-06 15:38:27 · 1337 阅读 · 0 评论 -
C++版 - 剑指Offer 面试题39:二叉树的深度(高度)(二叉树深度优先遍历dfs的应用) 题解
剑指Offer 面试题39:二叉树的深度题目:输入一棵二叉树的根结点,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。例如:输入二叉树: 10 /原创 2016-05-07 08:45:36 · 2054 阅读 · 0 评论 -
快速排序 数组+递归实现
快速排序 数组实现基本思想:1. 选取用来作分割的元素(也称为partition主元),最简单的分割方法是选定待排序数中的第一个数为partition主元,主元e是数组arr中第i个元素,主元e左边的元素都不大于e,主元e右边的元素都不小于e; 2. 使用两个跟踪变量(forward和backward),递归地对从i到backward采用快速排序方法,并递归地对从forward原创 2016-04-17 19:52:56 · 1551 阅读 · 0 评论 -
动态规划入门之求解Fibonacci数列
动态规划入门之求解斐波那契数列斐波那契数列,除了可以用跟递归方法来处理,还可以使用动态规划方法(DP)来求解。区别在于,如果使用动态规划方法,中间结果要“缓存”起来,以备后续使用,就可以将时间复杂度优化为O(N)。具体做法就是将每次调用fibonacci(i)的结果“缓存”起来。在普通电脑上,递归版本生成第50项斐波那契数用时可能超过一分钟,而动态规划方法只需几毫秒就能产生第10000项斐波那契数。原创 2016-10-17 20:18:45 · 3170 阅读 · 2 评论 -
滴滴2016.09.06校招 在线笔试 - 2道编程题
滴滴2016.09.06校招 在线笔试 - 2道编程题1、连续子数组的最大和题目描述一个数组有N个元素,求连续子数组的最大和。例如:[-1,2,1],和最大的连续子数组为[2,1],其和为3。输入描述输入为两行。第一行一个整数n(1<=n<=100000),表示一共有n个元素,第二行为n个数,每个元素每个整数都在32位int范围内。以空格分隔。输出描述所有连续子数组中和最大的值。输入例子3-1 2原创 2016-10-03 17:14:36 · 3105 阅读 · 0 评论 -
华为oj之字符个数统计
题目:字符个数统计热度指数:4720时间限制:1秒空间限制:32768K本题知识点: 字符串题目描述编写一个函数,计算字符串中含有的不同字符的个数。字符在ACSII码范围内(0~127)。不在范围内的不作统计。输入描述:输入N个字符,字符在ACSII码范围内。输出描述:输出范围在(0~127)字符的个数。输入例子:abc输出例子:3在线提交网址: http://www.nowcoder.原创 2016-09-28 16:10:27 · 1348 阅读 · 0 评论 -
C#版 - 小红书后台开发面试题: 二维数组中的查找
二维数组中的查找热度指数:24274 时间限制:1秒 空间限制:32768K本题知识点: 查找 在线提交网址: http://www.nowcoder.com/practice/abc3fe2ce8e146608e868a70efebf62e?tpId=13&tqId=11154&rp=1题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到原创 2016-10-17 11:27:02 · 3014 阅读 · 0 评论 -
C++版 - 剑指offer 面试题18: 树的子结构(LintCode 245.Subtree) 题解
题目: 树的子结构热度指数:9608 时间限制:1秒 空间限制:32768K提交网址: http://www.nowcoder.com/practice/6e196c44c7004d15b1610b9afca8bd88?tpId=13&tqId=11170或 http://www.lintcode.com/zh-cn/problem/subtree/ (难度: Easy)题目描述输入原创 2016-10-27 14:31:26 · 1488 阅读 · 0 评论 -
C++版 - 剑指Offer 面试题36:数组中的逆序对及其变形(Leetcode 315. Count of Smaller Numbers After Self)题解
剑指Offer 面试题36:数组中的逆序对题目:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。例如, 在数组{7,5,6,4}中,一共存在5个逆序对,分别是(7,6),(7,5),(7,4),(6,4)和(5,4),输出5.提交网址: http://www.nowcoder.com/practic原创 2016-05-07 09:59:53 · 5330 阅读 · 4 评论 -
华为oj之求解立方根
题目: 求解立方根热度指数:1008 时间限制:1秒 空间限制:32768K题目描述•计算一个数字的立方根,不使用库函数立方根的逼近迭代方程是 y(n+1) = y(n)*2/3 + x/(3*y(n)*y(n)),其中y0=x. 求给定的x经过n次迭代后立方根的值。 详细描述:•接口说明原型:public static double getCubeRoot(double input)输原创 2016-09-28 16:04:30 · 1836 阅读 · 0 评论 -
今日头条校招2016-09-28在线编程题(2题)
题目1: String Shifting我们规定对一个字符串的shift操作如下: shift(“ABCD”,0)=”ABCD” shift(“ABCD”,1)=”BCDA” shift(“ABCD”,1)=”CDAB”换言之, 我们把最左侧的N个字符剪切下来, 按序附加到右侧.给定一个长度为n的字符串, 规定最多可以进行n次循环shift操作。 shift(string, x) = str原创 2016-09-29 10:43:26 · 5255 阅读 · 1 评论 -
腾讯 2015秋招笔试题 编程题2:九宫格填数
腾讯 2015秋招笔试题题目: 2. 有下图的题解,请用 C/C++ 代码来列出满足下图 0-100 内的所有答案。九宫格配合加减乘除,横竖都等于4请你将1—8这八个数字填入方格中,在数字不允许重复的情况下,使横行和竖行的答案都等于4,你能填出来吗? 分析:用a1~a9表示九个数,其中a3=原创 2016-05-13 15:37:53 · 5968 阅读 · 2 评论 -
C++版 - 剑指offer 面试题24:二叉搜索树BST的后序遍历序列(的判断) 题解
剑指offer 面试题24:二叉搜索树的后序遍历序列(的判断)题目:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true。否则返回false。假设输入的数组的任意两个数字都互不相同。提交网址: http://www.nowcoder.com/practice/a861533d45854474ac791d90e447bafd?tpId=原创 2016-05-04 19:59:18 · 3872 阅读 · 0 评论 -
九度Online Judge 题目1432:叠筐 解答
九度Online Judge 题目1432:叠筐 解答提交网址: http://ac.jobdu.com/problem.php?pid=1432内存限制:128 兆 时间限制:1 秒题目描述:把一个个大小差一圈的筐叠上去,使得从上往下看时,边筐花色交错。这个工作现在要让计算机来完成,得看你的了。输入:输入是一个个的三元组,分原创 2016-04-12 20:21:21 · 1655 阅读 · 0 评论