在由N个元素构成的集合S中,找出最小元素C,满足C=A-B,其中A,B是都集合S中的元素,没找到则返回-1

Posted 追梦赤子心

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在由N个元素构成的集合S中,找出最小元素C,满足C=A-B,其中A,B是都集合S中的元素,没找到则返回-1相关的知识,希望对你有一定的参考价值。

package bianchengti;
/*
 * 在由N个元素构成的集合S中,找出最小元素C,满足C=A-B,
 * 其中A,B是都集合S中的元素,没找到则返回-1
 */
public class findMinValue {
    //快速排序
     public static void sort(int a[], int low, int hight) {
            if (low > hight) {
                return;
            }
            int i, j, key;
            i = low;
            j = hight;
            key = a[i]; // 用第一个元素作为基准
            while (i < j) { // 从表的两端交替向中间扫描
                while (i < j && a[j] >= key) {
                    j--;
                }
                if (i < j) {
                    a[i] = a[j];
                    i++;
                }

                while (i < j && a[i] < key) {
                    i++;
                }
                    
                if (i < j) {       
                   a[j] = a[i];
                   j--;
                }         
            }
            
            a[i] = key;//将基准数值替换回 a[i]          
            
            sort(a, low, i - 1); //递归调用,把key前面的完成排序
           
            sort(a, i + 1, hight); //递归调用,把key后面的完成排序
           
        }

    
    public static int getResult(int a[]) {
        int min=a[0];//最小值

         for (int i = a.length - 1; i > 1 ; i--) {
          
             for (int j = a.length - 1; j > 0; j--) {

                 if (a[i] - a[j-1] ==min) {
                   return min;
                 }
             }
         }
        return -1;
    }
    
    public static void print(int src[]) {
         for (int i = 0; i < src.length; i++) {         
                System.out.print(src[i] + " ");
            }
         System.out.println();
    }
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
          int a[] = {6,2,7,3,8,9};      
          print(a);
          sort(a, 0, a.length - 1);
          print(a);
          System.out.println(getResult(a));
    }

}

 

以上是关于在由N个元素构成的集合S中,找出最小元素C,满足C=A-B,其中A,B是都集合S中的元素,没找到则返回-1的主要内容,如果未能解决你的问题,请参考以下文章

AtCoder Regular Contest 146 C Even XOR题解

AtCoder Regular Contest 146 C Even XOR题解

[UOJ198][CTSC2016]时空旅行

C语言找出一个数组中出现次数最多的那个元素

给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。

编写程序,找出数组a中前n个元素中的最小元素及其下标