最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 日常刷题0x10之未出新手村

    正文概述 掘金(JyHiting)   2021-03-06   544

    如果不小心网友来到了这里请网友自动飘走,浪费你们时间表示歉意。该系列博客的目的是:想作为自律工具和朋友一起每天刷几道题作为打卡督促的功能,没有什么可参考学习的东西,也不是刷博客量充大佬的目的

    题号:34
    //都能想到的方法,最笨的实现
    //遍历
    var searchRange = function (nums, target) {
        let result = []
        for (let i = 0; i < nums.length; i++) {
            const ele = nums[i];
            if (ele == target) {
                if (result.length == 0) {
                    result.push(i)
                    result.push(i)
                } else {
                    result.pop()
                    result.push(i)
                }
            }
        }
        if (result.length == 0) {
            result = new Array(2).fill(-1)
        }
        return result
    };
    
    //二分查找
    var searchRange = function (nums, target) {
        let left = 0, right = nums.length - 1
        //魔鬼出没的地方1
        //需不需要==
        let rightIdx = nums.length
        while (left <= right) {
            //魔鬼小细节可能溢出
            let mid = Math.floor(left + (right - left) / 2)
            //魔鬼小细节等还是不加等
            if (nums[mid] > target) {
                //魔鬼小细节+1 -1需不需要
                right = mid - 1
            } else {
                rightIdx = mid
                left = mid + 1
            }
        }
        left = 0, right = nums.length - 1
        let leftIdx = 0
        while (left <= right) {
            let mid = Math.floor(left + (right - left) / 2)
            if (nums[mid] >= target) {
                leftIdx = mid
                right = mid - 1
            } else {
                left = mid + 1
            }
        }
        //判断坐标leftIdx和rightIdx是否合法(不一定有结果的)
        if (nums[leftIdx] == target && nums[rightIdx] == target) {
            return [leftIdx, rightIdx]
        } else {
            return [-1, -1]
        }
    };
    
    题号:114
    //学习别人的递归思路,让我对递归有了更好的认识
    var flatten = function (root) {
        if (root == null) {
            return
        }
        //递归处理的是相同子问题,是相同不是相似
        //处理完当前节点的逻辑,下面的节点树还是一个树
        //问题是一个问题,那就继续调用flatten处理下一个
        //相同的问题(规模变小)
        if (root.left == null) {
            flatten(root.right)
        } else {
            //观察先序遍历的走向
            //访问到一个节点的时候,先处理的是左节点
            //那么就把左放到当前节点的右边,原来的右
            //子树放哪?不能丢了
            //原来的右子树一定在左边的子树遍历完再遍历
            //那么我就把原来的右树放到左树的最后遍历
            //的那个元素后面不就可以了吗
            let left = root.left
            let right = root.right
            root.right = left
            root.left = null
    
            let preRight = left
            while (preRight.right != null) {
                preRight = preRight.right
            }
            preRight.right = right
            //继续递归
            flatten(root.right)
        }
    };
    
    题号:221
    //动态规划
    //             +
    //     @@@@@@@@+
    //     @@@@@@@@+
    //     @@@@@@@@+
    // ------------=
    var maximalSquare = function (matrix) {
        let dptable = new Array(matrix.length)
        for (let i = 0; i < matrix.length; i++) {
            let arr = new Array(matrix[0].length).fill(0)
            dptable[i] = arr
        }
        let maxLen = 0
        for (let i = 0; i < matrix.length; i++) {
            for (let j = 0; j < matrix[0].length; j++) {
                //matrix[i][j] == 0 长宽再长都行不成符合题意正方形
                if (matrix[i][j] == 1) {
                    //初始情况
                    //横竖一行的情况
                    if (i == 0 || j == 0) {
                        dptable[i][j] = 1
                    } else {
                        dptable[i][j] = Math.min(dptable[i - 1][j], dptable[i][j - 1], dptable[i - 1][j - 1]) + 1
                    }
                }
                maxLen = Math.max(maxLen, dptable[i][j])
            }
        }
        return maxLen * maxLen
    };
    

    起源地下载网 » 日常刷题0x10之未出新手村

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元