1、给出一个问题:给你一个整形数组,这个数组中除了一个数字只出现一次外,其他数字都只出现两次,求出那个只出现一次的数字?
要求:时间复杂度为O(n) , 空间复杂度为O(1)。
这个题目的难点在于空间复杂度的限制。
解法:一个数出现两个,两个数相同,而相等两个数异或的值为0 , 所以,我们只需要把整个数组的数都异或一遍,我们就能得到只出现了一次的那个数字
int g...
分类:
其他好文 时间:
2014-07-23 13:13:26
阅读次数:
204
如果领悟了树状数组中的lowbit,这道题就是极其简单的,最底层都是奇数,用lowbit(x)寻找x的父亲,然后x的父亲-1就是最大数
至于lowbit是如何计算的嘛,寻找x的父亲,其实就是x+2^x的二进制末尾0的个数。
#include
#include
using namespace std;
typedef long long ll;
ll lowbit(int x){
re...
分类:
其他好文 时间:
2014-07-23 13:12:16
阅读次数:
273
public class ReadFromFile { /** * 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。 */ public static void readFileByBytes(String fileName) { Fil...
分类:
编程语言 时间:
2014-07-23 12:49:16
阅读次数:
337
COM组件程序:模块,它可以是 动态连接库(DLL) && 可执行程序(EXE),称为 进程内组件(in-of-process component) && 进程外组件(out-of-process component)。 COM对象:建立在二进制可执行代码级的基础上,因此COM对象是语言无关的...
分类:
其他好文 时间:
2014-07-23 12:23:06
阅读次数:
244
项目开发中需要获取最大值常量获取最大整数importsyssys.maxsize--->2147483647获取最大十进制数importdecimaldecimal.getcontext().Emax--->999999decimal.getcontext().Emin--->-999999
分类:
编程语言 时间:
2014-07-23 00:20:48
阅读次数:
741
软件编译安装我们知道在安装某一个软件时,有些我们不需要安装的程序或者特性被安装到系统上去了,而我们需要的程序或者特性没有被安装进去,或者说该软件存在一些漏洞等等因素,我们都需要修改该软件的源代码,然后在重新编译生产一个二进制文件,最后用户才可以安装这个二进..
分类:
系统相关 时间:
2014-07-23 00:20:18
阅读次数:
325
??
1.打印二进制机器码(分别表示32位的和64位的)
#include
/*按照8位的长度打印一个数值*/
void dis8bit(char val)
{
int bit = 8;
while(bit--)
{
if(1
printf("1");
...
分类:
其他好文 时间:
2014-07-22 23:48:57
阅读次数:
408
先要了解一下C语言里全部的位运算都是指二进制数的位运算。即使输入的是十进制的数,在内存中也是存储为二进制形式。 “=0。 功能:将整型数a按二进制位向左移动m位,高位移出后,低位补0。 “>>”使用方法: 格式是:a>>m,a和m必须是整型表达式,要求m>=0。 功能:将整型数a按二进制位向右移动m...
分类:
编程语言 时间:
2014-07-22 22:40:52
阅读次数:
242
格式输出:
printf(格式控制, 输出表列);
%d 十进制数 %md m为指定的宽度 若数据位数小于m,则左端补以空格;若大于m,则按实际位数输出
%ld 长整型数据 %mld 指定字段宽度
%o 八进制整数形式 %mo
%x 十六进制整数形式 %mx
%u unsigned型数据,它也可用%o或%x格式输出
%c 一个字符 %mc
%s 字符串 有几种用法
...
分类:
编程语言 时间:
2014-07-22 22:34:12
阅读次数:
573
MySQL那是相当流行的关系型数据库有之一,随着MySQL被Oracle收购后开源的前途未卜,gooogle,非死不可等都开始转入mysql开源社区维护的另一个开源mysql分支MariaDB上去了,Maria是mysql创始人MichaelWidenius的二女儿的名字,MariaDB完全兼容MySQL,使用Percona维护的XtraDB(代号..
分类:
数据库 时间:
2014-07-22 18:09:52
阅读次数:
238