上代码:public class Solution {
public static void reOrderArray(int[] arr) {
int i,j,target;
for (i = 1 ; i< arr.length; i++) {
target = arr[i]; if (target%2!=0)...
分类:
编程语言 时间:
2015-08-18 01:17:58
阅读次数:
115
题目:统计一个数字在排序数组中出现的次数。思路:对二分查找进行改进,找到数字在数组中第一次出现和最后一次出现的位置,这样就得到它出现的次数。以找第一次出现的位置为例:如果mid元素大于k,则在前半段找;如果小于k,则在后半段找;如果等于k,则要看mid的前一个元素是不是k,如果是,则在前半段找,如果...
分类:
编程语言 时间:
2015-08-18 01:01:51
阅读次数:
185
题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。例如下面的二维数组就是每行、每列都递增排序。如果在这个数组中查找数字7,则返回true;如果查找数字5,由于数组不含有该数字,则...
分类:
编程语言 时间:
2015-08-18 00:57:32
阅读次数:
226
丑数:只有2 3 5 这三个因子的数,求前(第)1500个。习惯上我们把1当作第一个丑数例如 6, 8是丑数。14不是。#include int Min(int x,int y, int z){ int min = (x <= y) ? x : y; return min...
分类:
其他好文 时间:
2015-08-17 19:13:23
阅读次数:
132
转载请注明出处:http://blog.csdn.net/ns_code/article/details/27106997题目描写叙述:在一个字符串(1#include/*返回第一个出现一次的字符*/char FirstOnceChar(char *str){ if(str == NULL) re....
分类:
其他好文 时间:
2015-08-17 18:49:46
阅读次数:
93
输入一颗二叉搜索树,将该二叉搜索树转换成一个排序的双向两步。空间复杂度为O(1).
最笨的方法就是中序遍历放在一个数组或链表中,再次遍历串联起来。但是要求空间复杂度为O(1),就没办法这么做了,这时候可以参考这个解法。http://blog.csdn.net/my_jobs/article/details/47666909判断一个树是不是一颗二叉搜索树,可以模仿最后的那个方法。
本题跟...
分类:
其他好文 时间:
2015-08-17 15:31:46
阅读次数:
131
剑指offer上的一道题:输入n个整数,找出最小的k个数。例如输入4、5、1、6、2、7、3、8共8个数,最小的4个数为:1、2、3、4。
分析:
解法一:
可以把它看车数组排序问题,先对数组排序,再取数组前k个数。各个排序算法中,快排是性价比比较高的了,时间事件复杂度为O(n*logn)。还有没有其他解法呢?
解法二:
快排思想派上用场了。快排算法中,我们通常要找一个参...
分类:
其他好文 时间:
2015-08-15 23:12:55
阅读次数:
276
1.打印二叉树程序很简单,但是其中犯了一个小错误,死活找不到,写代码要注意啊这里左右子树,要注意是node->left,结果写成root->leftvector PrintFromTopToBottom(TreeNode *root) { vector res; if (NULL == ...
分类:
其他好文 时间:
2015-08-15 22:53:44
阅读次数:
160
题目:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。思路:归并排序的合并过程。主要是考虑合并两个有序序列时,计算逆序对数。对于两个升序序列,设置两个下标:两个有序序列的末尾。每次比较两个末尾值,如果前末尾大于后末尾值,则有...
分类:
编程语言 时间:
2015-08-13 17:28:49
阅读次数:
194
#includeusing namespace std;bool iswei1(int data,int wei){ int i=8*sizeof(int); data=data>>(i-wei); return(data&1);}void number1(int *list,in...
分类:
编程语言 时间:
2015-08-13 17:25:06
阅读次数:
116