【牛客網機試】和為S的連續正數序列
連結:https://www.nowcoder.com/questionTerminal/c451a3fd84b64cb19485dad758a55ebe?toCommentId=7932272 來源:牛客網
小明很喜歡數學,有一天他在做數學作業時,要求計算出9~16的和,他馬上就寫出了正確答案是100。但是他並不滿足於此,他在想究竟有多少種連續的正數序列的和為100(至少包括兩個數)。沒多久,他就得到另一組連續正數和為100的序列:18,19,20,21,22。現在把問題交給你,你能不能也很快的找出所有和為S的連續正數序列?
輸出描述:
輸出所有和為S的連續正數序列。序列內按照從小至大的順序,序列間按照開始數字從小到大的順序
import java.util.ArrayList; public class Main { private static ArrayList<ArrayList<Integer>> findSum(int sum) { // 存放結果 ArrayList<ArrayList<Integer>> result = new ArrayList<>(); int left = 1; int rigtht = 2; while (rigtht > left) { // 由於是連續的正整數,等差數列 int cur = (left + rigtht) * (rigtht - left + 1) / 2; // 如果視窗中的值的和等於sum,則將視窗中的數字遍歷放入結果集合中 if (cur == sum) { ArrayList<Integer> arrayList = new ArrayList<>(); for (int i = left;i<=rigtht;i++){ arrayList.add(i); } result.add(arrayList); left++; } else if (cur < sum) { // 如果視窗中的和小於sum,則將右邊到視窗往後加1 rigtht++; } else { // 如果視窗中的和大於sum,則 left++; } } return result; } }
相關文章
- JZ-041-和為 S 的連續正數序列
- 每日一練(30):和為s的連續正數序列
- [每日一題] 第五題:和為 s 的連續正數序列每日一題
- 劍指 Offer 57 - II. 和為s的連續正數序列
- Leetcode 題解系列 -- 和為s的連續正數序列(滑動視窗)LeetCode
- 牛客網--華為機試題
- 牛客網 比較奇偶個數(水、北郵機試)
- 牛客題霸--連續子陣列的最大和陣列
- 牛客網 找最小數(sort結構體查詢、北郵機試)結構體
- 10.12牛客CSP-S考試總結
- 牛客網 複數集合(小根堆的優先佇列、北郵機試)佇列
- 牛客網 二進位制數(進位制轉換、北郵機試)
- 牛客練習賽14B 區間的連續段
- hive生成連續的時間和連續的數Hive
- 牛客網測試題 把十六進位制數字轉換為十進位制數字
- 牛客網 查詢(二分查詢、北郵機試)
- 輸入n個元素組成的序列s,你需要找出一個乘積最大的連續子序列
- 和為s的兩個數字
- 怎樣解題|題2.4.9:連續正整數之和
- 為限制和連續做好準備
- Mysql 練習(牛客網)MySql
- 牛半仙的妹子序列
- LeetCode-128-最長連續序列LeetCode
- 牛客練習賽129 A-數數
- 牛客題霸 [括號序列] C++題解/答案C++
- 牛客網Java評估題Java
- 劍指offer面試題11:旋轉陣列的最小數字(Java版已在牛客網AC)面試題陣列Java
- 用牛頓法求正數的開方值
- 統計輸入的數字為正數和負數的個數
- 牛客
- 【leetcode】53. Maximum Subarray 連續子序列的最大和LeetCode
- 洛谷----P1147 連續自然數和
- subprocess中命令為引數序列和字串的區別字串
- 正規表示式去除連續重複的字元字元
- 牛客網高頻演算法題系列-BM12-單連結串列的排序演算法排序
- 牛客網高頻演算法題系列-BM14-連結串列的奇偶重排演算法
- JZ-042-和為 S 的兩個數字
- 連續自然數求和