算法例题
ClearlightY
欢迎访问个人网站: clearlight.com.cn
展开
-
求连续数组中唯一重复的值-Java
1-1000中放在含有1001个元素的数组中,只有唯一的一个元素重复,其他均只出现一次. 设计一个算法,将它找出来 三种方法来求解该题. 用到的算法知识为第二种方法. 涉及到算法(相同的值异或为0;0与任意值异或后值不变) * 1-1000的值与1-1001的值异或, * 这些数包含999对相同的数与一个包含了3个数 * 相同的数异或为0,所以999对数异或完为0,三个数其中两个数...原创 2019-04-23 23:29:25 · 729 阅读 · 0 评论 -
计算二进制中1的个数-Java____[位运算思维]
需求: 实现一个函数,输入一个整数,输出该数二进制表示中1的个数 实现方法解析 第一种: Integer.toBinaryString(n)获得输入整数的二进制数,然后再用String类中的charAt(int i)方法依次取二进制字符串中每个字符与1进行比较,通过累加得到1的个数 第二种: 核心(n & (1 << i)) == (1 << i) 例:9...原创 2019-04-24 17:47:01 · 944 阅读 · 2 评论 -
整数的奇偶位互换-Java____[位运算思维]
需求 将整数的奇偶位互换 例: 9的二进制为 :1001. 交换后为 0110,即6. 53的二进制为:110101, 交换后为 111010,即58 方法解析 二进制先只保留偶数位存入a中, 只保留奇数位存入b. 将只保留偶数位的a右移(这样就将偶数位的值移到了奇数位),同理将b左移(这样就将所有的奇数位的值移到了偶数位).最后再将移位后的值进行异或,这样就将移动后的奇数...原创 2019-04-25 18:05:22 · 984 阅读 · 0 评论 -
递归的实例-Java
/** * 对递归进行训练 * * @author Clearlight * */ public class _07_递归 { public static void main(String[] args) { System.out.println(f(3)); // n的阶乘 System.out.println(f2(new int[] {1,1,2,3,4},0)); ...原创 2019-05-09 22:29:45 · 193 阅读 · 0 评论