刷題40 力扣1道題 牛客1道題)

2022-07-28 04:15:16 字數 1441 閱讀 3409

給你乙個整數陣列 a,只有可以將其劃分為三個和相等的非空部分時才返回 true,否則返回 false。

形式上,如果可以找出索引 i+1 < j 且滿足 (a[0] + a[1] + ... + a[i] == a[i+1] + a[i+2] + ... + a[j-1] == a[j] + a[j-1] + ... + a[a.length - 1]) 就可以將陣列三等分。

輸出:[0,2,1,-6,6,-7,9,1,2,0,1]

輸出:true

解釋:0 + 2 + 1 = -6 + 6 - 7 + 9 + 1 = 2 + 0 + 1

輸入:[0,2,1,-6,6,7,9,-1,2,0,1]

輸出:false

3 <= a.length <= 50000

-10^4 <= a[i] <= 10^4

求陣列a的元素和sum。

遍歷陣列a的元素,判斷元素之和有幾個sum/3。

若sum != 0且num==3,或者 sum == 0且num > 2返回true。

求陣列a的元素和sum;

如果sum可以被3整除,那麼遍歷陣列a的元素,判斷元素之和res是否等於sum/3,若等於,則num加1,res=0;

統計num的個數,若sum != 0,那麼sum/3不為0,此時num==3才可以把陣列分成3等分;若 sum == 0,那麼num>2,陣列都可以分成3等分,即:當sum != 0 && num==3,或者 sum == 0 && num > 2返回true;

其餘返回false。

/**

* @param a

* @return

*/var canthreepartsequalsum = function(a) else

}else

};

可把返回語句簡寫:

/**

* @param a

* @return

*/var canthreepartsequalsum = function(a) ;

hz偶爾會拿些專業問題來忽悠那些非計算機專業的同學。今天測試組開完會後,他又發話了:在古老的一維模式識別中,常常需要計算連續子向量的最大和,當向量全為正數的時候,問題很好解決。但是,如果向量中包含負數,是否應該包含某個負數,並期望旁邊的正數會彌補它呢?例如:,連續子向量的最大和為8(從第0個開始,到第3個為止)。給乙個陣列,返回它的最大連續子串行的和,你會不會被他忽悠住?(子向量的長度至少是1)

設定變數max存放最大值,並賦初值為array[0];

遍歷陣列,求和sum,若當前求和小於當前元素,令sum等於當前元素;

比較sum和max的大小,若sum>max,max=sum。

function findgreatestsumofsubarray(array)

}return max;

}

刷題35 力扣2道題 牛客1道題

輸入乙個正整數 target 輸出所有和為 target 的連續正整數序列 至少含有兩個數 序列內的數字由小到大排列,不同序列按照首個數字從小到大排列。輸入 target 9 輸出 2,3,4 4,5 輸入 target 15 輸出 1,2,3,4,5 4,5,6 7,8 限制 1 target 1...

刷題49 力扣3道題)

輸入整數陣列arr,找出其中最小的k個數。例如,輸入4 5 1 6 2 7 3 8這8個數字,則最小的4個數字是1 2 3 4。輸入 arr 3,2,1 k 2 輸出 1,2 或者 2,1 輸入 arr 0,1,2,1 k 1 輸出 0 1.寫sort數值排序 2.快速排序 法一 sort排序 寫s...

新手刷題 70道力扣題

1.兩數之和 1 暴力解法 時間複雜度為n n n class solution def twosum self,nums list int target int list int for i in range 0,len nums for j in range i 1,len nums if nu...