- 博客(34)
- 收藏
- 关注
原创 数组中值只出现一次的数字
//一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现//一次的数字。要求时间复杂度是O(n),空间复杂度是O(1).#include "iostream"using namespace std;//以异或后第x位是否为1分为两组,分别找出只出现一次的数void FindNumsAppearOnce(int a[], int n){ if (a =
2016-05-31 15:05:14 230
原创 数组中的逆序对
//在数组中的两个数字如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。//输入一个数组,求出这个数组中的逆序对的总数。#include "iostream"using namespace std;//最直观的,O(n^2)int inversePairs0(int* data, int n){ if (data == NULL || n <= 0) return
2016-05-27 22:23:49 250
原创 第一次只出现一次的字符
//在字符串中找出第一个只出现一次的字符。如输"abaccdeff",则输出'b'.#include "string"#include "map"#include "iostream"using namespace std;//法1:用map O(nlogn)char firstNotRepeatedChar0(char* str){ if (str == NULL) //一定
2016-05-27 20:22:50 245
原创 丑数
/*我们把只包含因子2、3和5的数称为丑数(Ugly number)。求按从小到大的顺序的第1500个丑数。例如6、8都是丑数,但14不是,因为它包含因子7.习惯上我们把1当做第一个丑数。*/#include "iostream"using namespace std;//最直观的方法,写一个丑数判断函数,从1开始count,count到1500输出。bool isUglyNu
2016-05-27 19:28:59 331
原创 把数组排成最小的数
/*输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这3个数字能排成的最小数字321323*/#include "iostream"#include "sstream"#include "vector"#include "algorithm"using namespace std;//实质
2016-05-27 16:57:08 148
原创 mysql_xm
#include #include #include #include #include "filesupport.h"#include "mysql_driver.h"#include "mysql_connection.h"#include "cppconn/driver.h"#include "cppconn/statement.h"#include "cppconn/
2016-05-24 15:46:56 186
原创 从1到n整数中1出现的次数
/*输入一个整数n,求从1到n这个n个整数的十进制表示中1出现的次数。例如,输入12,从1到12这些整数中包含1的数字有1,10,11,12。1一共出现了5次*/#include "iostream"#include "algorithm"using namespace std;int count1Num(int num){ int count = 0; while (n
2016-05-24 10:55:36 200
原创 数组中出现次数超过一半的数字
/*数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,输出2.*/#include "iostream"#include "map"using namespace std;void MoreThanHalfNum0(int* numbers, int le
2016-05-23 11:38:25 148
原创 二叉搜索树变双向链表
//输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。//要求不能创建任何新的结点,只能调整树中结点指针的指向。#include "stdlib.h"struct BinaryTreeNode{ int m_nValue; BinaryTreeNode* m_pLeft; BinaryTreeNode* m_pRight;};//第一种需要额外空间,先中序,再连。
2016-05-20 16:56:16 215
原创 复杂链表的复制
//请实现函数ComplexListNode* Clone(ComplexListNode* pHead),复制一个复杂链表。//在复杂链表中,每个结点除了有一个m_pNext指针指向下一个结点外,还有一个m_pSlibling//指向链表中的任意结点或者NULL。#include using namespace std;struct ComplexListNode{ int m
2016-05-20 15:36:16 186
原创 《七周七语言》之ruby练习2
有一个数组,包含16个数字。仅用each方法打印数组中的内容,一次打印4个数字。然后,用可枚举模块的each_slice方法重做一遍。myarray = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]myarray[0..3].each{|a| puts a}myarray[4..7].each{|a| puts a}myarray[8..11
2016-05-19 16:31:46 319
原创 栈的压入、弹出序列
//输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。//假设压入栈的所有数字均不相等。例如序列1、2、3、4、5是某栈的压栈序列,序列4、5、3、2、1是//该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。#include "iostream"#include "stack"using namespace std;
2016-05-18 19:50:23 184
原创 顺时针打印矩阵
//输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字#include "stdio.h"void PrintMatrixClockwisely(int **a, int cols, int rows){ int i_end = cols; int j_end = rows; int i_start = 0; int j_start = 0; while (i_end
2016-05-18 18:45:06 178
原创 二叉树的镜像
//请完成一个函数,输入一个二叉树,该函数输出它的镜像#include "stdlib.h"struct BinaryTreeNode{ int m_nValue; BinaryTreeNode* m_pLeft; BinaryTreeNode* n_pRight;};void MirrorRecursively(BinaryTreeNode *pNode){ if (pN
2016-05-18 15:15:33 172
原创 《七天七语言》之Ruby练习1
打印字符串"Hello, world."。puts 'Hello, world.' 在字符串"Hello, Ruby."中,找出"Ruby."所在下标。'Hello, Ruby.'.index('Ruby.') 打印你的名字十遍。i = 10 while i > 0 i = i-1 puts 'zhuqian' end 打印字符
2016-05-18 10:27:10 299
原创 反转链表
//定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。#include "stdlib.h"struct ListNode{ int m_nKey; ListNode* m_pNext;};ListNode* ReverseList(ListNode* pHead){ if (pHead == NULL || pHead->m_pNext == NULL)
2016-05-17 16:42:03 131
原创 链表中倒数第K个结点
//输入一个链表,输出该链表中倒数第K个结点。(k=1,2...)//如:链表1、2、3、4、5、6.倒数第3个节点为4。#include "iostream"using namespace std;struct ListNode{ int m_nValue = 0; //default ListNode *m_pNext = NULL; ListNode(int val,
2016-05-17 16:05:58 164
原创 调整数组顺序使奇数位于偶数前面
//输入一个整数数组,实现一个函数来调整该数组中数字的顺序,//使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。#include "helper.h"//前后指针void reorderArray0(int a[], int n){ if (a == NULL || n == 0) return; int evenFirst = 0; while (a[evenF
2016-05-16 16:40:15 206
原创 在O(1)时间删除链表结点
//给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点。#include "stdlib.h" //包含了null,free()等struct ListNode{ int m_nValue; ListNode* m_pNext;};void DeleteNode(ListNode ** pListHead, ListNode * PToBeDeleted
2016-05-16 15:08:59 150
原创 打印1到最大的n位数
//输入数字n,按顺序打印出从1最大的n位十进制数。//比如输入3,则打印1、2、3一直到最大的3位数即999.#include "iostream"#include "string"#include "vector"using namespace std;//用一个string做加法器void stringAdd(string &str){ if (str.empty(
2016-05-16 13:09:25 260
原创 数值的整数次方
//实现函数double Power(double base, int exponent),求base的exponent次方。//不得使用库函数,同时不需要考虑大数问题。#include "iostream"using namespace std;//因为计算机存储的原因,在一定范围内算相等bool equal(double num1, double num2){ if ((n
2016-05-15 15:10:54 201
原创 二进制中1的个数
//输入一个整数,输出该二进制表示中1的个数。#include "limits"#include "iostream"using namespace std;int binCountOne0(int value) { int bits = sizeof(int) * 8; int count = 0; for (int i = 0; i < bits; i++) //循环
2016-05-14 21:03:12 189
原创 旋转数组找最小值
/*把一个组织最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。*/#include "iostream"#include "algorithm"using namespace std;int minRotatedArray0(int a[], int l, int u){ if (l == u) return
2016-05-14 20:05:03 204
原创 员工年龄排序算法
//对公司几万员工年龄排序#include "vector"#include "iostream"using namespace std;void arrayPrint(int a[], int N){ for (int i = 0; i < N; i++) cout << a[i] << " "; cout << endl;}void sortAges0(int age
2016-05-13 10:16:05 481
原创 单链表逆向打印
/*输入一个链表的头结点,从尾到头反过来打印出每个结点的值*/struct ListNode{ int m_nKey; ListNode* m_pNext;};#include "vector"#include "iostream"using namespace std;void printReverseList0(ListNode* head){ vector tmp
2016-05-12 21:40:43 898
原创 lib和dll的区别与联系
在用sql connector c++时,同时到了mysqlcppconn.lib和mysqlcppconn.dll两个文件,一时竟说不出它们的区别。。(1)lib是编译时用到的,dll是运行时用到的。如果要完成源代码的编译,只需要lib;如果要使动态链接的程序运行起来,只需要dll。(2)如果有dll文件,那么lib一般是一些索引信息,记录了dll中函数的入口和位置,dll中是函数的具体
2016-05-10 14:45:16 396
原创 mysql connector c++测试
可以用connector c++操作mysql。1. 从官网下载对应的connector c++版本。http://dev.mysql.com/downloads/connector/cpp/我这里选择的是64位的noinstall版本。复制解压后的文件夹到相应的工程下。(方便移植,拷到别人电脑上的时候,不需要别人下载配置路径什么的。)2. 包含相对路径
2016-05-10 14:40:04 1033
原创 mysql命令行学习
1. 首先登录mysql。命令行:> mysql -u root -p> Enter pass word:**2. mysql> show databases; #显示已经存在的数据库。 SQL语句末尾加上';'表示立即执行当前语句。+--------------------+| Database |+-----------------
2016-05-10 11:24:11 1252
原创 mysql在windows下的安装
现在人脸的特征点存储是文件形式,想把它存储到数据库中。1. 先到官网下载mysql。选择相应的版本。http://dev.mysql.com/downloads/mysql/我选择的是:64位的。(因为我们现在的项目都是生成64位的。)然后解压到你要安装的目录。比如,我的是c:\Program Files2. 以管理员权限打开cmd到bin目录。附
2016-05-09 16:41:40 573
原创 swap:临时变量vs和交换vs位运算 时间对比
/*1 编写一个函数,不用临时变量,直接交换两个数*/void swap0(int* a, int* b){ int temp; temp = *a; *a = *b; *b = temp;}void swap1(int* a, int* b){ *a = *a + *b; *b = *a - *b; *a = *a - *b;}void swap2(int *a, i
2016-05-08 21:28:06 1122
原创 完整的哲学家进食代码
//#include "stdafx.h"#include //HADNDLE#include //#include //time(0)//#include #include "iostream"using namespace std;const unsigned int N=2; //哲学家数目const int THINKING=1; //标记当前哲学
2016-05-06 16:46:54 10292 2
原创 c++ 编程中遇见的问题。
1. c++ size_t 和 int 做比较时的问题。可以看出,int型的负数比unsigned型大。所以,在做类似索引循环的时候,一定要注意索引的类型。比如:string str("ni hao");for (size_t i = str.size(); i >= 0; i--) cout 会访问越界。而此时:string str("ni hao"
2016-05-05 11:21:16 413
原创 哲学家就餐问题——多线程代码学习
哲学家就餐问题,在网上看到一份代码,学习。。#include //HADNDLE#include //#include //time(0)//#include #include "iostream"using namespace std;const unsigned int N=5; //哲学家数目const int THINKING=1; //标记当前
2016-05-04 21:25:41 3923
原创 检测算法对比_测试
不同检测算法误检率、漏检率、检测时间对比测试:void main(){ DetectTask* d_task = NewDetectTaskInstance(60,"pico"); //给facedeletedll就是facedeletedll算法,根据参数,有不同的分配算法 FileSupport file; std::string root = "D:\\project\\we
2016-05-02 22:24:00 521
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人