每日一题——LeetCode1299.将每个元素替换为右侧最大元素

这篇具有很好参考价值的文章主要介绍了每日一题——LeetCode1299.将每个元素替换为右侧最大元素。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

每日一题——LeetCode1299.将每个元素替换为右侧最大元素,每日一题,算法,javascript,leetcode

方法一 个人方法:

 题目意思就是求在i=1;i++的循环条件下,arr[i]-arr[arr.length-1]的最大值分别为多少,最后一项默认为-1

用slice方法可以每次把数组第一位去除,得到求最大值的目标数组

Math的max方法可以直接返回数组里的最大值

但是不能每次循环都求一遍目标数组的最大值,这样会超时。我们可以发现,当求过一遍右侧最大元素后,从当前元素位置到最大元素的位置之间最大元素都是同一个元素,只有当最大元素也被从数组中去除,才需要找新的右侧最大元素

var replaceElements = function(arr) {
    let res=[],
    max=-999
    for(let i=0;i<arr.length-1;i++){
        if(arr[i]<max){
            res.push(max)
        }else{
            let temp=arr.slice(i+1)
            max=Math.max(...temp)
            res.push(max)
        }
    }
    res.push(-1)
    return res
};

消耗时间和内存情况:

每日一题——LeetCode1299.将每个元素替换为右侧最大元素,每日一题,算法,javascript,leetcode

方法二 逆序遍历

将数组反过来再按照题目意思,那就是循环对数组里每一个元素进行比较求最大值,当max没有变化时一直加入max,max变化后加入新的max

var replaceElements = function(arr) {
    let res=[],
    max=-999
    res.push(-1)
    for(let i=arr.length-1;i>0;i--){
        max=max<arr[i]?arr[i]:max
        res.push(max)
    }
    return res.reverse()
};

消耗时间和内存情况:

每日一题——LeetCode1299.将每个元素替换为右侧最大元素,每日一题,算法,javascript,leetcode文章来源地址https://www.toymoban.com/news/detail-816949.html

到了这里,关于每日一题——LeetCode1299.将每个元素替换为右侧最大元素的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 每日一题——LeetCode1189.气球的最大数量

    方法一 个人方法: 统计text字符串中\\\'b\\\'、\\\'a\\\'、\\\'l\\\'、\\\'o\\\'、\\\'n\\\' 这几个字符出现的次数 l和n需要两个才能拼成一个balloon,所以碰到l和o加1,其他字符加2 最后求出出现次数最少的那个字符再除以2就是能拼凑成的单词数量,避免出现小数要使用向下取整 消耗时间和内存情况: 方法

    2024年02月01日
    浏览(35)
  • (字符串 ) 剑指 Offer 05. 替换空格 ——【Leetcode每日一题】

    难度:简单 请实现一个函数,把字符串 s 中的每个 空格 替换成 “ %20 ”。 示例 1: 输入:s = “We are happy.” 输出:“We%20are%20happy.” 限制 : 0 = s 的长度 = 10000 💡思路:双指针法 如果想把这道题目做到 极致 ,就不要只用额外的辅助空间了! 首先扩充数组到每个空格替换

    2024年02月08日
    浏览(71)
  • Leetcode每日一题——“移除元素”

    各位CSDN的uu们你们好呀,小雅兰又来啦,今天,小雅兰的内容是移除元素,下面,让我们进入Leetcode的世界吧   说明: 为什么返回数值是整数,但输出的答案是数组呢? 请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。 你可以

    2023年04月23日
    浏览(54)
  • 【LeetCode】每日一题:移除元素

    目录  题目: 思想1:暴力解法 思想2:创建一个temp数组  思想3:双指针 👻内容专栏:《LeetCode刷题专栏》 🐨本文概括: 27.移除元素 🐼本文作者:花 碟 🐸发布时间:2023.4.15 https://leetcode.cn/problems/remove-element/   点击跳转到LeetCode平台OJ页面(27.移除元素)  👉 示例1: 解

    2023年04月19日
    浏览(73)
  • 【LeetCode每日一题】410. 分割数组的最大值

    2024-1-21 410. 分割数组的最大值 思路:二分查找+贪心 利用二分查找法和贪心算法来求解将数组分割为m个非空连续子数组,使得每个子数组的和的最大值最小 首先,我们需要确定二分查找的左右边界。左边界 left 初始化为数组中的最大值,右边界 right 初始化为数组所有元素的

    2024年01月23日
    浏览(39)
  • ( 数组) 27. 移除元素 ——【Leetcode每日一题】

    难度:简单 给你一个数组 nums 和一个值 val ,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 说明

    2024年02月08日
    浏览(441)
  • LeetCode每日一题——1691. 堆叠长方体的最大高度

    题目: 828. 统计子串中的唯一字符 难度: 困难 给你 n 个长方体 cuboids ,其中第 i 个长方体的长宽高表示为 cuboids[i] = [widthi, lengthi, heighti](下标从 0 开始)。请你从 cuboids 选出一个 子集 ,并将它们堆叠起来。 如果 widthi = widthj 且 lengthi = lengthj 且 heighti = heightj ,你就可以将

    2024年02月10日
    浏览(37)
  • 【Leetcode】【每日一题】【中等】1465. 切割后面积最大的蛋糕

    力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。 https://leetcode.cn/problems/maximum-area-of-a-piece-of-cake-after-horizontal-and-vertical-cuts/description/?envType=daily-questionenvId=2023-10-27 矩形

    2024年02月07日
    浏览(35)
  • 2023-08-15 LeetCode每日一题(字符串中的查找与替换)

    点击跳转到题目位置 你会得到一个字符串 s (索引从 0 开始),你必须对它执行 k 个替换操作。替换操作以三个长度均为 k 的并行数组给出:indices, sources, targets。 要完成第 i 个替换操作: 检查 子字符串 sources[i] 是否出现在 原字符串 s 的索引 indices[i] 处。 如果没有出现, 什么

    2024年02月12日
    浏览(43)
  • ( 数组和矩阵) 485. 最大连续 1 的个数 ——【Leetcode每日一题】

    难度:简单 给定一个二进制数组 nums , 计算其中最大连续 1 的个数。 示例 1: 输入:nums = [1,1,0,1,1,1] 输出:3 解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3. 示例 2: 输入:nums = [1,0,1,1,0,1] 输出:2 提示: 1 = n u m s . l e n g t h = 1 0 5 1 = nums.length = 10^5

    2024年02月08日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包