當前位置:
                    首頁 >
                            前端技术
>                            javascript
>内容正文                
                        
                    javascript
[Wrong Answer] Leetcode 805 JavaScript 解决方案 数组的均值分割
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                [Wrong Answer] Leetcode 805 JavaScript 解决方案 数组的均值分割
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                思路
- 排除法排除一部分不可能情況 - 1、總 和 為奇數的排除
- 2、數組最大數 大于總和一半的 排除
- 3、假設一個子數組長度為 n , 那么 sum * n % len = 0 ,輪詢 沒有整除的排除
 出自該博文
 
- 1-0 背包方法繪制二維圖表 - 具體看該 油管教程 簡單易懂
- 主要利用公式
 
代碼
/*** @param {number[]} A* @return {boolean}*/ var splitArraySameAverage = function(A) {A.sort((a, b) => a - b); function getSum(list){return list.reduce((sum, ele) => sum + ele, 0)}let sum = getSum(A);if(sum % 2 !== 0){return false;}let len = A.length;let sumHalf = sum / 2;if(A[len - 1] > sumHalf){ // 最大數大于一半 肯定分不勻return false;}let flag = false;for(let i = 1; i < len; ++i){if(sum * i % len === 0){flag = true;break;}}if(!flag){return false;}let matrix = [];for(let i = 0; i < len; ++i){ // 創建背包二維數組matrix.push([]);}for(let i = 0; i < len; ++i){for(let j = 0; j <= sumHalf; ++j){if(i === 0 || j === 0){matrix[i][j] = 0;continue;}if(j >= A[i - 1]){matrix[i][j] = Math.max(matrix[i - 1][j],matrix[i - 1][j - A[i - 1]] + A[i - 1]);}else{matrix[i][j] = matrix[i - 1][j];}if(matrix[i][j] === sumHalf){console.log(matrix);return true;}}}console.log(matrix);return false; }; 復制代碼Bazinga
代碼沒有通過,對不對????
 我也覺得很神奇啊,這種情況應該給 false 啊,機器判定 true 。。。
結論
刷題還學了 背包問題 很充實了
[5,3,11,19,2] 復制代碼這個怎么可能均分??
 我不管 這題算我刷過了。。。
轉載于:https://juejin.im/post/5c07d7afe51d4538994aed8f
總結
以上是生活随笔為你收集整理的[Wrong Answer] Leetcode 805 JavaScript 解决方案 数组的均值分割的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: (八)ThreadLocal的使用及原理
- 下一篇: mode
