在實現的過程中,要注意判斷角標不能越界,以及相等的數的判斷方法。
/**
* @program: entrance_exam
* @description: 求乙個陣列a中連續相同數字的和等於s的最長子陣列長度。
* 如a=,s=3,則所求子陣列長度為 3.
* 要求:演算法的時間複雜度不超過o(n),空間複雜度不超過o(1).
* @author: tao
* @create: 2018-05-26 08:57
**//**演算法思想:找到連續相同的數字,判斷其和是否等於s,若是,則記錄數字的個數;否則,繼續遍歷,直到存在
* 和為s的相同連續數字。若存在多個連續相同的數字的和等於s,那麼取其長度最長的即為子陣列長度。
* */
public class exercise10 ;
int b=new int;
int test=4;
int s=3;
int l= longest(a, s);
int ls=longest(b,test);
system.out.println(l);
system.out.println(ls);
}public static int longest(int a, int s)
}return count;
}}
和為aim的最長子陣列長度
求在給定的陣列中,子陣列中所有數加起來的和等於固定值 aim 的最長子陣列長度。準備乙個字典,key是從 1 位置到當前位置的累加和,value 是第一次得到這個累加和的位置。預設 1 位置的累加和是0.從頭開始遍歷陣列,每次都計算從 1 位置到當前位置的累加和是多少,並將位置資訊和 累加和存到字典...
給定值k的最長子陣列長度
1 給定乙個陣列,值全是正數,請返回累加和為給定值k的最長子陣列長度。2 給定乙個陣列,值可以為正 負和0,請返回累加和為給定值k的最長子陣列長度。1 l和r都只能往右滑動,不會回退 初始化 l r 0 如果視窗內 l,r 的和小於k,r sum num r 如果和等於k,記錄視窗大小並視情況更新返...
5500 乘積為正數的最長子陣列長度
給你乙個整數陣列 nums 請你求出乘積為正數的最長子陣列的長度。乙個陣列的子陣列是由原陣列中零個或者更多個連續數字組成的陣列。請你返回乘積為正數的最長子陣列長度。示例 1 輸入 nums 1,2,3,4 輸出 4 解釋 陣列本身乘積就是正數,值為 24 1.維護以前一位置結尾的正數和負數的長度,當...