题目意思是 再给出的全排列(1~n每个数字只出现一次)中,找到一个奇数个的子串,要求子串的中位数(大小排序后正中间的数), 为M;
求这种子串有多少.
首先要把M这个数左边的串预处理下, 如果 遇到大于M的数ji++,然后记录在data[当前位置的奇偶][当前记录的ji] ,如果当前位置的数小于M的数,ji--; 因为ji记录在数组里,所以ji 要价格50000 以保证不会出现负数的情况.
然后再处理右边的串,ji 重新计数,
ans+data[位置奇偶, 如果两个位置奇偶相同,代表这条串有奇数个元...
分类:
其他好文 时间:
2014-08-04 11:05:17
阅读次数:
238
问题:找出只出现一次的数,其他数出现了三次分析:将数转化为二进制的位,数出现了三次相当于其对应的二进制上每个位置出现了3次,这里有个抽象的地方就是,例如数中包含1,3两个其二进制的第一位都包含1, 怎么区分,其实并不需要区分,无论是数字3的还是数字1的二进制第一位的1都无所谓,因为我们完全可以...
分类:
其他好文 时间:
2014-08-04 10:53:27
阅读次数:
296
当然如果这个问题是只有一个不同的数,其他数字成对相同,那么就是把所有数字异或就得出这个数了
这次是有两个只出现一次的数字,其他数字都成对相同
1)先把所有数都异或得到数t
2)算出t的二进制第一个1的位置flag
3)将所有数根据二进制flag位置是否为1分成两组b1[],b2[] (此时每组数字的个数一定是奇数)
4)将b1组异或得到ans1,将b2组异或得到ans2...
分类:
其他好文 时间:
2014-08-03 01:47:24
阅读次数:
344
问题:给你一组数一个数字出现一次,其他的数字出现两次,找出那个出现一次的数字分析:相同数字异或为0,所以将所有数字都异或后剩下的就是出现一次的数class Solution {public: int singleNumber(int A[], int n) { int sum=0...
分类:
其他好文 时间:
2014-08-01 19:36:22
阅读次数:
202
有一个S*S的方格,行和列都是从0到S-1。有四种操作: 操作参数含义0 S 初始化表格,大小为S*S,所有单元格的值均为0。(此操作只出现一次且一定是第一条操作)1 X Y A 将(X,Y )单元格的值增加A 2 L B R T 询问矩形区域(x,y)内的值的和并输出答案,其中x,y满足 L#in...
分类:
其他好文 时间:
2014-07-31 09:43:35
阅读次数:
248
抽象工厂模式(Abstract Factory):提供一个创建一系列相关或者相互依赖对象的接口,而无需制定他们具体的类。
(1),工厂方法模式是定义一个用于创建对象的接口,让子类决定实例化哪一个类。
(2),为创建不同的产品对象,客户端应使用不同的具体工厂。
抽象工厂模式的优点和缺点:
(1),好处是便于交换产品系列,由于具体工厂类在一个应用中只需要在初始化的时候出现一次,这就使得...
分类:
编程语言 时间:
2014-07-31 00:05:55
阅读次数:
222
Single Number I
问题描述:
Given an array of integers, every element appears twice except for one. Find that single one.
解题思路:
既然除了某个元素出现一次外,其他所有元素都出现两次,那么可以异或数组的所有元素,得到的结果就是我们所要找的那个元素的值。
class Solu...
分类:
其他好文 时间:
2014-07-30 12:19:53
阅读次数:
184
抽象工厂(Abstract Factory),提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。一般用反射,配置文件等方式实现。
1、易于交换产品系列。由于具体工厂类,在一个应用中只需要在初始化的时候出现一次,这就使得改变一个应用的具体工厂变得非常容易,它只需要改变具体工厂即可使用不同的产品配置。
2、它让具体的创建实例过程与客户端分离,客户端是通过它们的抽象接口操纵实例,产...
分类:
其他好文 时间:
2014-07-26 15:10:00
阅读次数:
190
题目:在字符串中找出第一个只出现一次的字符。如输入"abaccdeff",这输出'b'// 第一个只出现一次的字符#include char first_not_repeat_char(char *s){ int count[256]={0}; char *pkey; if( s=...
分类:
其他好文 时间:
2014-07-24 09:59:53
阅读次数:
200
问题描述:
找出字符串中所以最长连续重复子串及其个数
比如:输入:123234,最大连续重复字符串为23,个数为2
输入:5555,最大连续重复字符串为555,个数为2
输入:aaabbb 最大连续重复字符串为aa,个数为2;和bb,个数为2
必须存在重复的字符串才算,只出现一次的不算。可能存在多个相同长度的不同字符串,比如aaabbb。
...
分类:
其他好文 时间:
2014-07-23 20:57:55
阅读次数:
239