算法

连续子数组的最大和


    function FindGreatestSumOfSubArray(array)
    {
       
        let temp=0
        let max=-99999
        let arr=[]

        for(let i=0;i<array.length;i++)
        {
            
            temp+=array[i]
            arr.push(array[i])
            if(temp>max)
            {
                max=temp
            }
            if(temp<0){
                temp=0
                arr=[]
            }
              
        }
        return max
    }


数组中出现次数超过一半的数字


function MoreThanHalfNum_Solution(numbers)
{
     
     //先排序
        numbers.sort(function (a, b) {
            return a - b
        })
        console.log(numbers);

        let flag = 0
        let count = 0
        let number
       if(numbers.length==1)
       {
           return numbers[0]
       }
       else{
        for (let i = 0; i < numbers.length - 1; i++) {
            if (numbers[i] == numbers[i + 1]) {
                count++

                if (count > flag) {

                    flag = count
                    count = 0
                    number = numbers[i]
                }
           

            }
            else {
                count = 0

            }


        }
        return number
       }
   
    
}


合并两个排序的链表


function Merge(pHead1, pHead2)
{ // write code here
     
    if (pHead1 == null) {
        return pHead2;
    } else if (pHead2 == null) {
        return pHead1;
    }
    var result = {};
    if (pHead1.val < pHead2.val) {
        result = pHead1;
        result.next = Merge(pHead1.next, pHead2);
    } else {
        result = pHead2;
        result.next = Merge(pHead1, pHead2.next);
    }
    return result;
}