zoukankan      html  css  js  c++  java
  • k个有序序列排序找出融合全部类别的最小范围





    import
    java.util.*; //import java.util.List; public class Search { private List<Variable> m_data = new ArrayList<Variable>(); private Variable temp = null;// = new Variable(); public Search(int[] m,int label) { for(int i = 0;i < m.length; i++) { Variable temp = new Variable(m[i],label); // temp.number = m[i]; // temp.label = label; m_data.add(temp); } } public int size() { return m_data.size(); } public Search merge(Search a,Search b) { this.m_data.addAll(a.m_data); this.m_data.addAll(b.m_data); //sort all elements for(int i = 0;i < m_data.size()-1; i++) for(int j = i+1; j < m_data.size(); j++) if(m_data.get(i).number > m_data.get(j).number) { swap(m_data.get(i),m_data.get(j)); } return this; } public void swap(Variable a,Variable b) { int number = a.number,label = a.label; a.number = b.number; a.label = b.label; b.number = number; b.label = label; } public void PrintLink() { for(int i = 0; i < m_data.size(); i++) System.out.print(m_data.get(i).number +" "); System.out.print(" "); for(int i = 0; i < m_data.size(); i++) System.out.print(m_data.get(i).label +" "); } public Search() { this.temp = null; this.m_data = null; } public void findsaml() { int sub = 0,coord_start = 0,coord_end = 0; boolean [] cond ={false,false,false,false}; for(int i = 0; i < m_data.size()-2; i++) { //cond[m_data.get(i).label] = true; int start = i; //sub = 0; for(int j = i; j < m_data.size(); j++) { cond[m_data.get(j).label] = true; if(cond[1] == true && cond[2] == true && cond[3] == true) { int temp = m_data.get(j).number - m_data.get(start).number; if(sub == 0) { coord_end = m_data.get(j).number; coord_start = m_data.get(start).number; sub = temp; } else if(temp < sub) { coord_end = m_data.get(j).number; coord_start = m_data.get(start).number; sub = coord_end - coord_start; } //j = start + 1; cond[1] = false; cond[2] = false; cond[3] = false; //start = j; break; } } } System.out.print("(" + coord_start +"," + coord_end +")"); } // public Variable[] addelements(Variable[] linkedlist,Variable[] link) { // // // return ; // } // public static void main(String args[]) { int[] a = {5,8,15,25,36}; int[] b = {0,4,18,50}; int[] c = {3,7,20,30,45}; Search s_1 = new Search(a,1); //System.out.println(s_1.list_size()); Search s_2 = new Search(b,2); //System.out.println(s_2.list_size()); Search s_3 = new Search(c,3); //System.out.println(s_3.list_size()); s_1.merge(s_2, s_3); //s_1.PrintLink(); s_1.findsaml(); //System.out.println(s_1.size()); } } class Variable { int number; int label; public Variable(int number,int label) { this.number = number; this.label = label; } }
  • 相关阅读:
    101. Symmetric Tree(js)
    100. Same Tree(js)
    99. Recover Binary Search Tree(js)
    98. Validate Binary Search Tree(js)
    97. Interleaving String(js)
    96. Unique Binary Search Trees(js)
    95. Unique Binary Search Trees II(js)
    94. Binary Tree Inorder Traversal(js)
    93. Restore IP Addresses(js)
    92. Reverse Linked List II(js)
  • 原文地址:https://www.cnblogs.com/kanwan/p/3494286.html
Copyright © 2011-2022 走看看