一,題目
輸入乙個正數
n,輸出所有和為
n連續正數序列。
例如輸入
15,由於
1+2+3+4+5=4+5+6=7+8=15
,所以輸出
3個連續序列
1-5、
4-6和
7-8。
二,思路
解法一:連續正序列,不包含n本身。所以子串行中最大元素為 n/2+1
求出到前 i個元素和儲存到b陣列中,然後遍歷陣列b ,i>j 時,求b[i] –b[j] ==n。如果等於則輸出 j+1 到 i 的序列。
時間複雜度:o(n^2)
#include using namespace std;
void print(int a,int j,int i)
} }}
解法二:
我們可用兩個數
small
和big
分別表示序列的最小值和最大值。
首先把small
初始化為1,
big初始化為2。
如果從small
到big
的序列的和大於
n的話,我們向右移動
small
,相當於從序列中去掉較小的數字。
如果從small
到big
的序列的和小於
n的話,我們向右移動
big,相當於向序列中新增
big的下乙個數字。
一直到small
等於(1+n)/2
,因為序列至少要有兩個數字。
#include using namespace std;
void printcontinuoussequence(int small, int big)
void findcontinuoussequence(int n)
// move big forward
big ++;
sum += big;
}}int main()
LeetCode第五十一題 N皇后
問題簡介 給定乙個n n的棋盤,求解如何將n個皇后放置在棋盤上,保證其之間不互相攻擊,即給定乙個整數 n,返回所有不同的解決方案,用 q 和 分別代表了皇后和空位 注 例如下圖為n 8 時的乙個解 舉例 輸入 4 輸出 q solution 1 q q q.q.solution 2 q q q 解法...
LeetCode第五十一題 N皇后
n queens 問題簡介 給定乙個n n的棋盤,求解如何將n個皇后放置在棋盤上,保證其之間不互相攻擊,即給定乙個整數 n,返回所有不同的解決方案,用 q 和 分別代表了皇后和空位 注 例如下圖為n 8 時的乙個解 舉例 輸入 4 輸出 q solution 1 q q q.q.solution 2...
輸入乙個正數n,輸出所有和為n連續正整數序列
public class lzwcode 題目 輸入乙個正數n,輸出所有和為n連續正整數序列。例如輸入15,由於1 2 3 4 5 4 5 6 7 8 15,所以輸出3個連續序列1 5 4 6和7 8。思路 因為整數序列是有序的,可以設立兩個游標begin和end,通過判區間 begin,end 的...