[C++] Swap Two Num】的更多相关文章

Swap Two Num…
长度为n的数组乱序存放着0至n-1. 现在只能进行0与其他数的swap 请设计并实现排序. google笔试小题.题目来源:http://wenku.baidu.com/view/5aa818dda58da0116c17498b.html休闲小题. 2个key 一个是只能与0 swap,另一个是数组的下标和值是一一对应的. 第二个容易被忽略.所以读到一个元素时,如果值和下标不等,那么可以直接把这个元素的值放到正确位置上去,目标位置的值挪回来.当然这个过程要借助元素0来完成. 假设输入是 2,0,…
删除元素 时间限制:1000 ms  |  内存限制:65535 KB 描述 题意很简单,给一个长度为n的序列,问至少删除序列中多少个数,使得删除后的序列中的最大值<= 2*最小值 输入 多组测试数据,每组测试数据包含两行. 第一行一个整数n( n <= 10^5),序列中元素的个数. 第二行依次输入n个数a1,a2……an,(1 <= ai <= 10^9)以空格分开. 输出 输出占一行,至少要删除数的个数. 样例输入 6 5 4 3 3 8 6 样例输出 1 思路: 先对n个数…
引用 C中指针的功能强大,使用起来繁杂,因为指针要控制的东西太多:有指针的类型,指针的解引用,指针空间内的值,它本身是有空间的,有自己的地址等.指针也是强大的,比如:我们要在函数之内,修改方法之外的值的话,必需用到指针.但这里指针的使用,使得我们要修改的类型,变成了另外一种类型(如:int*)由原来的类型变成了指针类型.  引用  &  能实现指针一模一样的功能,但它不改变数据的状态(类型). 用法:int val = 100;  int &refval = val ; 指针我们可以直接指…
费了我一天半的时间,到处debug,后来才发现,主要是建树的时候只在叶子节点对lazy1和lazy2进行初始化了,父节点都没初始化...晕. 具体见代码吧. #include <iostream> #include <stdio.h> #include <algorithm> #define lson rt<<1,L,mid #define rson rt<<1|1,mid+1,R /* 用两个lazy标记,lazy1标记01覆盖,lazy2标记…
起初的想法果然就是一个6000000的状态的表示. 但是后面觉得还是太过于幼稚了. 可以看看网上的解释,其实就是先转换位置,然后再改变数字的大小. #include<iostream> #include<cstdlib> #include<cstring> #include<cstdio> #include<queue> #include<cmath> using std::swap; using std::queue; ; ; st…
前面写过3个排列.这里再写一次. 1.全部都不重复https://oj.leetcode.com/problems/permutations/ (使用交换法)只是本人对c++ stl不熟,不会把排列结果保存,这里用java写一遍. public class Solution { public List<List<Integer>> permute(int[] num) { ArrayList<ArrayList<Integer>> total=new Arr…
题目地址:http://poj.org/problem?id=1184 题目意思: 给你两个6位数,一个是起始值,一个最终值 初始光标在最左边 你可以左移或者右移光变 在光标处+1或者-1 在光标处和最左边或者和最右边交换 问你最少要多少就可以由初始值转换到最终值 解题思路: 操作分离是解决这题的核心思想 就是说我们反正要进行一些转换的,不如先全部转换了算了 通过一个BFS预处理将所有可能转换的全部转换,光标所有可能的位置全部求出来 然后在每次要求的时候,对每种状态上的光标进行加减操作 求出最少…
欢迎参加——BestCoder周年纪念赛(高质量题目+多重奖励) DNA Sorting Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 2182    Accepted Submission(s): 1062 Problem Description One measure of ``unsortedness'' in a sequenc…
简直难到没朋友. 双向bfs + 剪枝. 剪枝策略: 对于2--5位置上的数,仅仅有当光标在相应位置时通过swap ,up.down来改变.那么当当前位置没有达到目标状态时,left和right无意义. 好了.仅仅剪掉这里就过掉了... 还有比較炫酷的方法实现枚举720种排列. .. 然后状压什么的... 功力不够全然看不懂. ... #include <algorithm> #include <iostream> #include <cstring> #include…