C/C++编程题
文章平均质量分 54
u013586251
这个作者很懒,什么都没留下…
展开
-
lintcode 160 寻找旋转排序数组中的最小值 II
假设一个旋转排序的数组其起始位置是未知的(比如0 1 2 4 5 6 7 可能变成是4 5 6 7 0 1 2)。你需要找到其中最小的元素。数组中可能存在重复的元素。样例给出[4,4,5,6,7,0,1,2] 返回 0解析:这个题目我们可以使用二分法的思想去解决,因为数组是有序的(分开的两部分)#include #include usin原创 2016-04-28 20:24:04 · 223 阅读 · 0 评论 -
中序遍历和后序遍历树构造二叉树
#include #include using namespace std;//Definition of TreeNode :class TreeNode {public: int val; TreeNode *left, *right; TreeNode(int val) { this->val = val; this->left = this->right =原创 2016-04-12 20:40:54 · 152 阅读 · 0 评论 -
哈希函数
在数据结构中,哈希函数是用来将一个字符串(或任何其他类型)转化为小于哈希表大小且大于等于零的整数。一个好的哈希函数可以尽可能少地产生冲突。一种广泛使用的哈希函数算法是使用数值33,假设任何字符串都是基于33的一个大整数,比如:hashcode("abcd") = (ascii(a) * 333 + ascii(b) * 332 + ascii(c) *33 + ascii(d)) % HASH原创 2016-03-08 21:32:12 · 156 阅读 · 0 评论 -
完全二叉树节点数
给定一棵完全二叉树的头节点head,返回这棵树的节点个数。如果完全二叉树的节点数为N,请实现时间复杂度低于O(N)的解法。#include using namespace std;class TreeNode{public: int val; TreeNode* left; TreeNode* right; TreeNode(int val) :val(val),原创 2016-03-08 00:08:18 · 294 阅读 · 0 评论 -
棋子翻转
在4x4的棋盘上摆满了黑白棋子,黑白两色的位置和数目随机其中左上角坐标为(1,1),右下角坐标为(4,4),现在依次有一些翻转操作,要对一些给定支点坐标为中心的上下左右四个棋子的颜色进行翻转,请计算出翻转后的棋盘颜色。给定两个数组A和f,分别为初始棋盘和翻转位置。其中翻转位置共有3个。请返回翻转后的棋盘。测试样例:[[0,0,1,1],[1,0,1,0],[0,1,1,0],[原创 2016-03-05 17:50:20 · 387 阅读 · 0 评论 -
首次重复的字符
对于一个字符串,请设计一个高效算法,找到第一次重复出现的字符。给定一个字符串(不一定全为字母)A及它的长度n。请返回第一个重复出现的字符。保证字符串中有重复字符,字符串的长度小于等于500。测试样例:"qywyer23tdd",11返回:yclassFirstRepeat {public: charfindF原创 2016-03-05 17:11:10 · 361 阅读 · 0 评论 -
【操作系统】如何用程序确定当前系统的存储模式
首先介绍一下存储模式:分为大端模式(Big_endian):字节数据的高字节存储在底地址中,而字节数据的低字节则存放在高地址中。小端模式(Little_endian):和大端存储相反。现在可以用一个C语言程序来判断处理器是什么端存储模式?思路:假设int类型的变量i被初始化为1.则以大端模式存储则在内存中为:0x0 0x0 0x0 0x1(低地址到高地址)而已小端存储则为:0x1原创 2015-07-13 20:36:45 · 328 阅读 · 0 评论 -
实现strcmp()函数
int strCmp(char *str1,char *str2) { int i = 0; while(str1[i] != '\0' && str2[i] != '\0' && str1[i] == str2[i]) { i++; } return (str1[i] == str2[i] ? 0 : (str1[i] > str2[i] ? 1 :原创 2015-05-31 00:31:10 · 257 阅读 · 0 评论 -
Web浏览
/*实现浏览器的页面前后访问机制。有四种命令:1、BACK;2、FORWARD;3、VISIT:访问新的页面;4、QUIT:退出浏览器。请参考实际的浏览器按钮的功能。假设浏览器打开时,显示的页面是:http://www.acm.org/一系列命令:以BACK、FORWARD、VISIT或QUIT开头。如果是VISIT,后面要跟URL,长度不超过7原创 2015-04-24 00:28:58 · 284 阅读 · 0 评论 -
四则运算
输入两个自然数a, b,输出他们四则运算后的结果 1/*如果使用int型的数据类型,在计算乘法的时候会出现数据过大而溢出,所以使用double或者float数据类型并且可以利用printf()函数的特点而输出,因为如果使用cout输出,编译器会自动处理结果为科学计算法,无法通过评测系统。*/#include#includeusing namespace std;int m原创 2015-04-19 23:47:48 · 289 阅读 · 0 评论 -
A+B Problem 高精度
输入两个大整数a, b(0 ≤ a, b ≤ 101000);输入只有一行,包含两个大整数a,b输出只有一行,包含一个大整数为a+b的和#include//#include//gets()#include//strlen()using namespace std;const int N = 1001;int main(){ char a[N],b[N];原创 2015-04-19 23:47:49 · 306 阅读 · 0 评论 -
输入两个自然数,输出他们相乘后数的位数
输入两个自然数,输出他们相乘后数的位数。(1/************************** * 求A*B的位数** 可以用数学log10()函数来解决相乘两数的位数问题* * 赵宣* * 2015.4.19* * bug 无* *******************************/#includ原创 2015-04-19 23:28:05 · 801 阅读 · 0 评论 -
lintcode 144交错正负数
给出一个含有正整数和负整数的数组,重新排列成一个正负数交错的数组。给出数组[-1, -2, -3, 4, 5, 6],重新排序之后,变成[-1, 5, -2, 4, -3, 6]或者其他任何满足要求的答案#include #include#include #include using namespace std;class Solution {public:原创 2016-04-24 23:25:19 · 437 阅读 · 0 评论