美文网首页
二叉搜索树中第K小的元素+整数反转

二叉搜索树中第K小的元素+整数反转

作者: 砂壶 | 来源:发表于2020-04-24 22:57 被阅读0次

    230. 二叉搜索树中第K小的元素

    思路

    1. 将二叉树存为数组,通过前序遍历存为从小到大的有序数组
      2.需要第几大的元素直接从排好序的数组中取
    /**
     * Definition for a binary tree node.
     * function TreeNode(val) {
     *     this.val = val;
     *     this.left = this.right = null;
     * }
     */
    /**
     * @param {TreeNode} root
     * @param {number} k
     * @return {number}
     */
    var kthSmallest = function(root, k) {
        let arr = [];
        getArr(root, arr);
        return arr[k-1];
    };
    
    function getArr(root, arr) {
        if(root === null) return;
        getArr(root.left, arr);
        arr.push(root.val);
        getArr(root.right, arr);
    }
    

    整数反转

    7. 整数反转
    第一次解

    1. 从低位到高位放到栈中
      3.从栈中取数,每次取都前一个*10再加当前的数,要判断是否溢出。
    /**
     * @param {number} x
     * @return {number}
     */
    const max = Math.pow(2, 31) - 1;
    const min = -Math.pow(2, 31);
    var reverse = function(x) {
        let stack = [];
        while(x) {
            let pop = x%10;
            stack.push(pop);
            x = parseInt(x/10);
        }
        let len = stack.length;
        let res = 0;
        for(let i = 0; i < len; i++) {
            if(res > 0 && res > parseInt((max-stack[i])/10)) return 0;
            if(res < 0  && res < parseInt((min-stack[i])/10)) return 0;
            res = res*10+stack[i];
        }
        return res;
    };
    

    第二次解:
    不添加使用栈,而是直接将数据存进来

    /**
     * @param {number} x
     * @return {number}
     */
    const max = Math.pow(2, 31) - 1;
    const min = -Math.pow(2, 31);
    var reverse = function(x) {
        let res = 0;
        while(x) {
            let pop = x%10;
            x = parseInt(x/10);
            if(res > 0 && res > parseInt((max-pop)/10)) return 0;
            if(res < 0  && res < parseInt((min-pop)/10)) return 0;
            res = res*10+pop;
        }
        return res;
    };
    

    相关文章

      网友评论

          本文标题:二叉搜索树中第K小的元素+整数反转

          本文链接:https://www.haomeiwen.com/subject/chzqwhtx.html