《美团编程题》丢失的三个数
生活随笔
收集整理的這篇文章主要介紹了
《美团编程题》丢失的三个数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述
現在有一個數組,其值為從1到10000的連續增長的數字。出于某次偶然操作,導致這個數組中丟失了某三個元素,同時順序被打亂,現在需要你用最快的方法找出丟失的這三個元素,并且將這三個元素根據從小到大重新拼接為一個新數字,計算其除以7的余數。 例:丟失的元素為336,10,8435,得到的新數字為103368435,除以七的余數為2。
輸入描述:
輸入數據為一行,包含9997個數字,空格隔開。
輸出描述:
輸出為一行,包含一個數字。
示例1
輸入
同題設例子輸入
輸出
2
解析:首先來個排序,然后開始找那三個數了,找到了繼續排序,然后拼接,最后記得%7得結果。
import java.util.*; public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);while (scanner.hasNext()){String s= scanner.nextLine();String [] str=s.split(" ");int [] arr= new int[str.length];for(int i=0;i<str.length;i++){//輸入的當行字符串轉為整數arr[i]=Integer.parseInt(str[i]);}Arrays.sort(arr);//排序List<Integer> list = new ArrayList<>();//存儲三個數for(int i=0;i<arr.length;i++){for(int j=i+1;j<arr.length;i++){if(arr[j]==arr[i]+2){//找到了丟失的數,保存list.add(arr[i]+1);}else {break;}}}Collections.sort(list);//丟失的數排序StringBuilder sb = new StringBuilder();for(Integer i:list){sb.append(i);}System.out.println(Long.parseLong(sb.toString())%7);}} }總結
以上是生活随笔為你收集整理的《美团编程题》丢失的三个数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《去哪网编程题》身份证分组
- 下一篇: 《数据库SQL实战》从titles表获取