leetcode 문제(104번,121번,136번)

run dev yun ·2021년 3월 19일
0
post-thumbnail

💻사전 학습

Math.min() = 함수는 주어진 숫자들 중 가장 작은 값을 반환함
Math.max() = 함수는 주어진 숫자들 중 가장 큰 값을 반환함

//x와y 중 작은 값이 z에 할당됨
var x = 10, y =-20;
var z = Math.min(x,y);
var x = f(foo);
if(x>boundary){
	x = boundary;
}

위 코드를 다음과 같이 사용 가능

var x = Math.min(f(foo), boundary);

1번 문제

104. Maximum Depth of Binary Tree
링크

//C언어 참고
#define MAX(a,b) ((a)>(b)?(a):(b))

int maxDepth(struct TreeNode* root){
int r=0,l=0;
if(root == NULL)
return 0;

r = maxDepth(root->right);
l = maxDepth(root->left);

return MAX(r,l)+1;

}*/

var maxDepth = function(root) {
    const r=0,l=0;

    function max(r,l){
        r = maxDepth(root.right);
        l = maxDepth(root.left);

        if(r>l)
            return r;
        else
            return l;
        
    }

    if(root == null){
        return 0;
    }
        
    else{    
        return max(r,l)+1;
    }
};

2번 문제

121.Best Time to Buy and Sell Stock

링크

var maxProfit = function(prices) {
    let result = 0;
    let min = prices[0];
    for(let i = 1; i < prices.length; i++) {
        min = Math.min(prices[i], min);
        result = Math.max(result, prices[i] - min);
    }
    return result;
};

3번 문제

136.Single Number

링크

var singleNumber = function(nums) {
    const arr = [];
    for(let i=0;i<nums.length;i++){
        for(let j=i+1;j<nums.length;j++){
            if(nums[i] === nums[j]){
                arr.push(nums[i]) ;
              //  arr.push(nums[j]);
            }            
        }  
    }
     for(let i=0;i<nums.length;i++){
         if(arr != nums[i])
             return nums[i];
     }      
};
profile
꾸준히 꼼꼼하게 jjy306105@gmail.com

0개의 댓글