Sherlock and Array

Sort by

recency

|

156 Discussions

|

  • + 0 comments

    Java:

    I don't know what I'm doing wrong:

    public static String balancedSums(List<Integer> arr) {
            Integer sumRight = arr.get(0);
            Integer sumLeft = 0;
            if(arr.size()>2){
                for(int j=2;j<arr.size();j++){
                    sumLeft += arr.get(j);
                }
                if(sumLeft==0)
                    return "YES";
                for(int i=1;i<(arr.size()-1);i++){
                    if(sumRight==sumLeft){
                        return "YES";
                    }
                    sumLeft-=arr.get(i+1);
                    sumRight+=arr.get(i);
                }
            } else if (arr.size()==1){
                return "YES";
            }
    
            return "NO";
        }
    
  • + 1 comment

    C++

    string balancedSums(vector<int> arr) {
        
        int sums = accumulate(arr.begin(),arr.end(),0);
        int leftSums = 0;
        
        for(int i : arr){
            if(sums-i == leftSums)
                return "YES";
            else{
                sums -= i;
                leftSums += i;
            }
        }
        
        return "NO";
    }
    
  • + 0 comments

    Python solution

    def balancedSums(arr):
        sums = sum(arr)
        leftSum = 0
        for i in arr:
            if sums-i == leftSum:
                return "YES"   
            else:
                sums -= i
                leftSum += i   
        return "NO"
    
  • + 0 comments

    Javascript

    function balancedSums(arr) {
        // Write your code here    
        var leftSum = 0
        var rightSum = arr.reduce((a, b) => a + b)
        
        for(var i = 0; i < arr.length; i++){
            leftSum = i == 0 ? 0 : leftSum + arr[i - 1]
            rightSum = i == arr.length - 1 ? 0 : rightSum - arr[i]                
            if (leftSum == rightSum){
                return 'YES'
            }        
        }
        return 'NO'
    }
    
  • + 0 comments

    My Solution using javascript

    function balancedSums(arr) {
        // Write your code here
        let totalSum = arr.reduce((acc, numb) => acc + numb, 0)
        let leftSum = 0;
        
        for(let i = 0; i < arr.length; i++){
            const rightSum = totalSum - leftSum - arr[i]
            
            if(leftSum === rightSum){
                return "YES"
            }
            
            leftSum += arr[i]
        }
        return "NO"
    }