首页 > 其他分享 >[Kyana]力扣刷题经验一

[Kyana]力扣刷题经验一

时间:2024-03-21 19:11:52浏览次数:30  
标签:right area lh height 力扣 刷题 new Kyana left

滑动窗口

11:盛水最多的容器

关键:需要找到长的板和长的距离

解法一:暴力法,类似冒泡的双重循环,优化后时间复杂度为O(√n),不符合要求。

解法二:双指针,从头尾往中间凑,不断更新长板和面积,时间复杂度为O(㏒n),Python3代码如下。

class Solution:
    def solveProblem(self, height:list) -> int:
        left, right, area, new_area = 0, len(height)-1, 0, 0
        while right > left:
            lh, rh = height[left], height[right]
            if lh > rh:
                new_area = rh * (right - left)
                right -= 1
            else:
                new_area = lh * (right - left)
                left += 1
            if new_area > area: area = new_area
        return area

42:接雨水

关键:想象一个极值窗口,在区间上滑动,减去窗口内占去,

标签:right,area,lh,height,力扣,刷题,new,Kyana,left
From: https://www.cnblogs.com/kyana/p/18088039

相关文章

  • 二叉树的深度优先遍历(力扣94,144,145)
    文章目录题目前知二叉树的遍历方式有什么?递归和迭代是什么?题解一、思路二、解题方法三、Code总结题目Problem:144.二叉树的前序遍历Problem:94.二叉树的中序遍历Problem:145.二叉树的后序遍历前知二叉树的遍历方式有什么?二叉树主要有两种遍历方式:......
  • 【力扣sql】高频 SQL 50 题(基础版)
    1174获取即时订单在所有用户的首次订单中的比例。保留两位小数。配送表:Delivery+-----------------------------+---------+|ColumnName|Type|+-----------------------------+---------+|delivery_id|int||custom......
  • 每日刷题 最长递增
    一·题目https://www.lanqiao.cn/problems/158/learning/?page=1&first_category_id=1&difficulty=30&second_category_id=3二.题目要求1.输入要求输入的第一行包含一个整数n第二行包含n个整数a1,a2,…,an,相邻的整数间用空格分隔,表示给定的数列。其中2≤n≤1000,0≤数列中的书≤......
  • 【力扣】岛屿数量(体会一下dfs和bfs思路的实质)
    题目描述注意,需要求的是岛屿的数量,而不是岛屿的总面积,这道题很考验对dfs思路的理解,而不是简单地套用模版。可以用dfs和bfs两种方法做。深度优先搜索版本首先看代码:classSolution{private:intdir[4][2]={0,1,1,0,-1,0,0,-1};//四个方向voiddfs(ve......
  • LeetCode刷题记录——day2
    https://leetcode.cn/problems/product-of-array-except-self/description/?envType=study-plan-v2&envId=top-interview-150问题在于不使用除法并且空间复杂度为O(1),当第一次从头开始遍历时由于不知道后续数组元素是什么,所以无法得到答案,而如果当知道一个后续数组元素后,又回去更......
  • 代码随想录刷题记录第一天 | 数组 | 704. 二分查找,27. 移除元素
    题目链接:704.二分查找-https://leetcode.cn/problems/binary-search/description/27.移除元素-https://leetcode.cn/problems/remove-element/description/文章学习链接:https://programmercarl.com/数组理论基础.html视频学习链接:https://www.bilibili.com/video/BV1f......
  • 【力扣刷题日记】512.游戏玩法分析II
    前言练习sql语句,所有题目来自于力扣(https://leetcode.cn/problemset/database/)的免费数据库练习题。今日题目:512.游戏玩法分析II表:Activity列名类型player_idintdevice_idintevent_datedategames_playedint(player_id,event_date)是这个表的两个主键(具有唯一值的列......
  • java数据结构与算法刷题-----LeetCode1005. K 次取反后最大化的数组和(这就不是简单题)
    java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846卷来卷去,把简单题都卷成中等题了文章目录1.排序后从小到大取负2.hash表从小到大排序,省掉排序(这就是为什......
  • java数据结构与算法刷题-----LeetCode134. 加油站
    java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846文章目录1.贪心2.动态规划1.贪心解题思路:时间复杂度O(......
  • 1793.好子数组的最大分数(力扣每日一题)
    1793.好子数组的最大分数给你一个整数数组nums(下标从0开始)和一个整数k。一个子数组(i,j)的分数定义为min(nums[i],nums[i+1],...,nums[j])*(j-i+1)。一个好子数组的两个端点下标需要满足i<=k<=j。请你返回好子数组的最大可能分数。 示例......