iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 25
0
自我挑戰組

純新手學習 JavaScript系列 第 25

新手學習JavaScript:day25 - Partition Array Into Three Parts With Equal Sum

  • 分享至 

  • xImage
  •  

今天是我們最後一天的leetcode刷題,直接上今天的題目:

/*
Given an array A of integers, return true if and only if we can partition the array into three non-empty parts with equal sums.

Formally, we can partition the array if we can find indexes i+1 < j with (A[0] + A[1] + ... + A[i] == A[i+1] + A[i+2] + ... + A[j-1] == A[j] + A[j-1] + ... + A[A.length - 1])

 

Example 1:

Input: A = [0,2,1,-6,6,-7,9,1,2,0,1]
Output: true
Explanation: 0 + 2 + 1 = -6 + 6 - 7 + 9 + 1 = 2 + 0 + 1
Example 2:

Input: A = [0,2,1,-6,6,7,9,-1,2,0,1]
Output: false
Example 3:

Input: A = [3,3,6,5,-2,2,5,1,-9,4]
Output: true
Explanation: 3 + 3 = 6 = 5 - 2 + 2 + 5 + 1 - 9 + 4
 

Constraints:

3 <= A.length <= 50000
-10^4 <= A[i] <= 10^4
*/
var canThreePartsEqualSum = function(A) {
  
};

今天的題目會給一個數字陣列,去檢測這個陣列分成三份之後(每一份數量不需相等),每一份的數值相加會不會互相相等,如果有回傳true,沒有false。

思考:

  1. 首先可以先找出陣列的綜合,並除以三得到平均值,每一個部分的值要等於平均值。
var canThreePartsEqualSum = function(A) {
    total = A.reduce((sum, num)=>{return sum + num})
    average = total/3
};
  1. 再來我們宣告一個值為0的變數,為了計算每個部分的合,以及一個空陣列來紀錄三個部分的總和。
var canThreePartsEqualSum = function(A) {
    total = A.reduce((sum, num)=>{return sum + num})
    average = total/3
    let num = 0
    let result = []
};
  1. 接下來,對陣列跑迴圈,將每一次的值做相加,如果值與平均值相等,就把值丟入陣列中,並且讓num歸0,去做下個部分的加總。最後,如果到找到最後一次迴圈且如果num不等於0,將數值丟入result。
var canThreePartsEqualSum = function(A) {
    total = A.reduce((sum, num)=>{return sum + num})
    average = total/3
    let num = 0
    let result = []
    for(let i = 0; i<A.length; i++){
          num += A[i]
      if (num == average){
          result.push(num)
          num = 0
      }
      if(i === A.length-1 && num !== 0){
          result.push(num)
      }
    }
    return result[0] === result[1] && result[1] === result[2]
};

以上就是今天的挑戰,那一個禮拜的leetcode刷題就到這邊,如果有哪位大大路過經過,還請多多分享賜教。明天開始就進入我們的todolist實作。


上一篇
新手學習JavaScript:day24 - Contains Duplicate
下一篇
新手學習JavaScript:day26 - 瀏覽器中的JavaScript
系列文
純新手學習 JavaScript30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言