2019.4.23美团第1题ac 100%
就剩下15分钟了也做不了下一题就提前交卷拉倒 保留了一些调试信息,类名按照我刷题的习惯美团第一题就叫MeiTuanQ1
import java.util.*; import java.util.Map.Entry; public class MeiTuanQ1 { public int modifyMatrix(int[][]matrix) { int countOdd=0,countEven=0; HashMap<Integer,Integer>oddMap=new HashMap<Integer,Integer>(); HashMap<Integer,Integer>evenMap=new HashMap<Integer,Integer>(); int n=matrix.length,m=matrix[0].length; for(int i=0;i<n;i++) for(int j=0;j<m;j++) { if((i-j)%2!=0) { countOdd++; if(!oddMap.containsKey(matrix[i][j])) oddMap.put(matrix[i][j],1); else oddMap.put(matrix[i][j],oddMap.get(matrix[i][j])+1); } else { countEven++; if(!evenMap.containsKey(matrix[i][j])) evenMap.put(matrix[i][j],1); else evenMap.put(matrix[i][j],evenMap.get(matrix[i][j])+1); } } List<Map.Entry<Integer,Integer>> list1 = new ArrayList<Map.Entry<Integer,Integer>> (oddMap.entrySet()); Collections.sort(list1,new Comparator<Map.Entry<Integer,Integer>>() { public int compare(Entry<Integer, Integer> o1, Entry<Integer, Integer> o2) { return o1.getValue().compareTo(o2.getValue()); } }); //for(Map.Entry<Integer,Integer> mapping:list1){ //System.out.println(mapping.getKey()+":"+mapping.getValue()); } List<Map.Entry<Integer,Integer>> list2 = new ArrayList<Map.Entry<Integer,Integer>> (evenMap.entrySet()); Collections.sort(list2,new Comparator<Map.Entry<Integer,Integer>>() { public int compare(Entry<Integer, Integer> o1, Entry<Integer, Integer> o2) { return o1.getValue().compareTo(o2.getValue()); } }); int oddMax=list1.get(list1.size()-1).getValue(); int evenMax=list2.get(list2.size()-1).getValue(); int countOddMax=1; int countEvenMax=1; for(int i=list1.size()-2;i>=0;i--) if(list1.get(i).getValue()!=oddMax){ countOddMax=list1.size()-1-i; break; } for(int i=list2.size()-2;i>=0;i--) if(list2.get(i).getValue()!=evenMax){ countEvenMax=list2.size()-1-i; break; } if(countOddMax==1&&countEvenMax==1&& list1.get(list1.size()-1).getKey()==list2.get(list2.size()-1).getKey() ) return Math.min(evenMax, oddMax); else return (countEven-evenMax+countOdd-oddMax); } public static void main(String[] args) { // TODO Auto-generated method stub int[][]matrix= { {1,2,1},{1,3,1},{1,1,1} }; System.out.print(new MeiTuanQ1().modifyMatrix(matrix)); Scanner sc=new Scanner(System.in); int n=sc.nextInt(),m=sc.nextInt(); int[][]matrix1=new int[n][m]; for(int i=0;i<n;i++) for(int j=0;j<m;j++) matrix1[i][j]=sc.nextInt(); int ans=new MeiTuanQ1().modifyMatrix(matrix); System.out.print(ans); } }
#笔试题目##Java##春招#