乙個簡單的找子串的演算法題

2021-07-02 18:17:56 字數 645 閱讀 9740

題目描述是這樣的:

給定乙個包含n個正整數的陣列和乙個正整數s,找出其滿足和sum ≥ s的子陣列的最小長度。如果不存在這樣的子陣列,返回0

例如,給定陣列 [2,3,1,2,4,3]與s = 7,

子陣列[4,3]具有滿足題設條件的最小長度。

按照直覺的辦法, 需要n平方的複雜度, 但是既然是子串, 那就是要找到連續的字串. 這種問題用二分法解決的話, 應該可以控制在nlogn的複雜度.

下面附上我的c **, 用直覺的方法計算的. nlogn 的**等我先想到演算法再附上:

#include 

#include

#include

int calsum (int i, int j, int* a)

return

sum;

}int calminlen(int i, int j, int s, int* a)

j++;

return j-i+1;

}int main(int argc, char* args)

for (i = 0; i < j; i++)

printf("minl is %d\n", minl);

return

0;}

乙個簡單的題

problem description 小明今年3歲了,現在他已經能夠認識100以內的非負整數,並且能夠進行100以內的非負整數的加法計算.對於大於等於100的整數,小明僅保留該數的最後兩位進行計算,如果計算結果大於等於100,那麼小明也僅保留計算結果的最後兩位.例如,對於小明來說 1 1234和3...

乙個簡單的SQL題

很久沒寫日誌了啊.唉.可能是自己比較懶吧.找工作呢.不怎麼想找.前幾天去南京一家軟體公司筆試.遇到了乙個沒見過的sql題.題目是這樣的.一表中有a b c三列,寫乙個sql語句,條件是如果a大於b則返回a,否則返回b 如果b大於c則返回b,否則返回c。本來以為自己對sql語句已經了解的很多了.呵呵....

kmp演算法 求乙個串的重複子串

題意 在給定的字串前i位找出迴圈節斷的個數。思路 還是kmp演算法的應用變形,從給出字串的第2位開始遍歷,找出每次的匹配的字串 length 前i為字串長度為i,所以i length就是迴圈節斷的個數,要保證i length能夠整除,所以i length 0。移動位數 length 已匹配的字元數 ...