Sherlock and Array

Sort by

recency

|

157 Discussions

|

  • + 0 comments

    C#

    public static string balancedSums(List arr) {

        int sumLeft = 0;
        int sumRight = arr.Skip(1).Sum();
    
        for(int i = 0; i < arr.Count; i++)
        {  
            if(i>0)
            {          
                sumLeft += arr[i - 1];
                sumRight -= arr[i];
            }             
    
            if(sumLeft == sumRight)
            {
                return "YES";
            }     
        }
    
        return "NO";
    }
    
  • + 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'
    }