首页 > 其他 > 详细

a-b-problem &&/permutation-index

时间:2015-11-15 00:42:39      阅读:251      评论:0      收藏:0      [点我收藏+]

给出两个整数a和b, 求他们的和, 但不能使用 + 等数学运算符。

样例

如果 a=1 并且 b=2,返回3

注意

你不需要从输入流读入数据,只需要根据aplusb的两个参数a和b,计算他们的和并返回就行。

挑战
 1 class Solution {
 2     /*
 3      * param a: The first integer
 4      * param b: The second integer
 5      * return: The sum of a and b
 6      */
 7     public int aplusb(int a, int b) {
 8         // write your code here, try to do it without arithmetic operators.
 9         if(b==0) {
10             return a;
11         }else{
12             return aplusb(a^b,(a&b)<<1);//a^b是进行异或运算,再加上(a&b)<<1就实现了进位
13         }
14     }
15 };

 

显然你可以直接 return a + b,但是你是否可以挑战一下不这样做?

排列序号

给出一个不含重复数字的排列,求这些数字的所有排列按字典序排序后该排列的编号。其中,编号从1开始。

样例

例如,排列[1,2,4]是第1个排列。//这道题其实考察的是字典全排列,当然我的解法并不是正常的思路,常规的算法应该是将这个数字序列的所有字典全排列算出来,去看看所给的是第几个。

http://www.geekviewpoint.com/java/numbers/permutation_index 具体介绍见链接,

 1 public class Solution {
 2     /**
 3      * @param A an integer array
 4      * @return a long integer
 5      */
 6     public long permutationIndex(int[] A) {
 7         // Write your code here
 8        /* long index =0;
 9         long position = 2;
10         long facrtor=1;
11         for(int q = A.length-2;q >= 0; q --){
12             long number = 0;
13             for(int p = q+1;p<q;p++)
14         }*/
15          long index = 0;
16          long position = 2;
17          long factor = 1;
18          for (int p = A.length - 2; p >= 0; p--) {
19          long successors = 0;
20          for (int q = p + 1; q < A.length; q++) {
21                if (A[q] > A[p]) {
22                   number++;
23                 }
24             }
25             index += (number * factor);
26              factor *= position;
27             position++;
28         }
29        index = index + 1;
30        return index;
31     }
32 }

后续明天继续更新相关的字典排序问题

a-b-problem &&/permutation-index

原文:http://www.cnblogs.com/wangnanabuaa/p/4965958.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!