国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

和為S的兩個數字

2019-11-08 18:51:57
字體:
來源:轉載
供稿:網友

題目描述

輸入一個遞增排序的數組和一個數字S,在數組中查找兩個數,是的他們的和正好是S,如果有多對數字的和等于S,輸出兩個數的乘積最小的。

輸出描述:

對應每個測試案例,輸出兩個數,小的先輸出。

算法解析: 對于一個遞增的有序數組,我們如果從頭到尾暴力掃描,那就十分不智,如果我們將兩個標志位分別設在開頭和結尾,如果這兩個標志位的和小于S,則將small向后移動,如果標志位的和大于s,則big前移,如果相等,我們就考慮這兩個數的乘積,rank后決定是否更新結果。

代碼如下:

public ArrayList<Integer> FindNumbersWithSum(int [] array,int sum) { int small = 0; int big = array.length - 1; ArrayList<Integer> result = new ArrayList<>(); if (array == null || array.length < 1){ return result; } while (small < big){ int check = array[small] + array[big]; if (check == sum){ if (result.size() == 0){ result.add(array[small]); result.add(array[big]); }else{ check = result.get(0) * result.get(1); if (check > (array[small] * array[big])){ result.clear(); result.add(array[small]); result.add(array[big]); } } small ++; }else if (check > sum){ big --; }else{ small ++; } } return result; }
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 铁岭市| 环江| 南召县| 湖北省| 莫力| 澜沧| 贡嘎县| 钦州市| 秦皇岛市| 丰都县| 蛟河市| 连平县| 鄂温| 繁昌县| 浦城县| 五莲县| 寻乌县| 商洛市| 拜城县| 凤庆县| 富平县| 永川市| 沂南县| 桑日县| 海林市| 彰化县| 清新县| 武强县| 色达县| 定州市| 灵宝市| 陇川县| 兴仁县| 昌图县| 灯塔市| 陆川县| 扬州市| 壶关县| 托克逊县| 惠来县| 湾仔区|