u011896111
026????
采纳率0%
2021-03-02 22:32

求一个java算法????


    例如sequence是          1,2,3,4,5,6,7
    则对应的r_n是              6,4,2,0,1,3,5
    例如sequence是       1,2,3,4,5,6,7,8
    则对应r_n是              8,6,4,2,1,3,5,7

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • weixin_37519752 键盘行者 1月前

     应该是这样的吧

    代码

    class Test1{
    	public static void main(String[] args) {
            int[] arr= {1,2,3,4,5,6,7};   
            int[] arr2= {1,2,3,4,5,6,7,8}; 
            Object[] result1 = getNewArray(arr); 
            Object[] result2 = getNewArray(arr2); 
            System.out.println(Arrays.asList(result1).toString());
            System.out.println(Arrays.asList(result2).toString());
        }
    
    	static Object[] getNewArray(int[] arr) {
    		Arrays.sort(arr);
    		if (arr.length % 2 != 0) 
    			arr[arr.length - 1] = 0;		
    		return getResultArray(arr);
    	}
    
    
    	static Object[] getResultArray(int[] arr) {
    		Set<Integer> odd = new HashSet<>(), even = new HashSet<>();	
    		for (int i = 0; i < arr.length; i++) {
    			if (arr[i]% 2!=0) {
    				odd.add(arr[i]);
    			}else {
    				even.add(arr[i]);
    			}
    		}
    		SortedSet<Integer> order = new TreeSet<Integer>(Collections.reverseOrder());
    		order.addAll(even);		
    		Object[] oddArr=odd.toArray(),evenArr=order.toArray(),
    				 result = Arrays.copyOf(evenArr, evenArr.length+oddArr.length);
    		for (int i = 0; i < oddArr.length; i++) {
    			result[evenArr.length+i]=oddArr[i];
    		}
    		return result;
    	}
    }
    点赞 评论 复制链接分享
  • weixin_41830716 规则边缘 1月前
        public static int[] rvsArr(int[] src) {
            int[] dest = new int[src.length];
            int midi = src.length / 2;
            int maxi = src.length - 1;
            int sign = -1;
            for (int si = maxi; si >= 0; si--, sign *= -1) {
                int di = midi + sign * ((si + 1) / 2);
                dest[di] = src[si];
            }
            return dest;
        }

    第二个sequence转换没问题,不过你的第一个sequence转换的具体规则是什么没明白,为什么元素都变了。

    点赞 评论 复制链接分享