当前位置: 首页 > news >正文

高端大气网站2023年新闻摘抄十条

高端大气网站,2023年新闻摘抄十条,合肥公司网站设计,wordpress 网站 seo一、题目描述 给你一个整数数组 nums #xff0c;数组中共有 n 个整数。132 模式的子序列 由三个整数 nums[i]、nums[j] 和 nums[k] 组成#xff0c;并同时满足#xff1a;i j k 和 nums[i] nums[k] nums[j] 。 如果 nums 中存在 132 模式的子序列 数组中共有 n 个整数。132 模式的子序列 由三个整数 nums[i]、nums[j] 和 nums[k] 组成并同时满足i j k 和 nums[i] nums[k] nums[j] 。 如果 nums 中存在 132 模式的子序列 返回 true 否则返回 false 。 示例 1 输入nums [1,2,3,4] 输出false 解释序列中不存在 132 模式的子序列。示例 2 输入nums [3,1,4,2] 输出true 解释序列中有 1 个 132 模式的子序列 [1, 4, 2] 。示例 3 输入nums [-1,3,2,0] 输出true 解释序列中有 3 个 132 模式的的子序列[-1, 3, 2]、[-1, 3, 0] 和 [-1, 2, 0] 。提示 n nums.length1 n 2 * 10^5-10^9 nums[i] 10^9 二、解题思路 要解决这个问题我们可以使用一个单调栈来帮助我们找到满足132模式的子序列。以下是解题思路 从后向前遍历数组维护一个单调递减栈栈中存储的是数组元素的索引。使用一个变量third来记录当前遍历到的元素作为nums[k]时所有可能的nums[i]中的最大值。当遍历到一个元素nums[j]时如果third不为空且nums[j] third则说明找到了一个满足条件的子序列返回true。如果当前元素nums[j]小于栈顶元素对应的值则将栈顶元素弹出并更新third为弹出的元素值因为此时弹出的元素可以作为nums[k]而nums[j]可以作为nums[j]我们记录下nums[k]中的最大值作为third。将当前元素的索引压入栈中。如果遍历完数组仍未找到满足条件的子序列则返回false。 三、具体代码 class Solution {public boolean find132pattern(int[] nums) {if (nums null || nums.length 3) {return false;}// 单调栈存储的是元素的索引StackInteger stack new Stack();// third变量记录所有可能的nums[i]中的最大值int third Integer.MIN_VALUE;// 从后向前遍历数组for (int i nums.length - 1; i 0; i--) {// 如果当前元素小于third说明找到了132模式if (nums[i] third) {return true;}// 当栈不为空且当前元素大于栈顶元素时更新thirdwhile (!stack.isEmpty() nums[i] nums[stack.peek()]) {third nums[stack.pop()];}// 将当前元素的索引压入栈中stack.push(i);}// 如果遍历完数组仍未找到满足条件的子序列则返回falsereturn false;} }四、时间复杂度和空间复杂度 1. 时间复杂度 遍历数组我们使用了一个for循环来遍历数组中的每个元素这个操作的时间复杂度是O(n)其中n是数组的长度。栈操作在每次遍历中每个元素最多只会被压入栈一次并且最多也只会被弹出一次。因此整个数组遍历过程中每个元素最多只会经过栈两次一次入栈一次出栈这意味着栈相关的操作的总时间复杂度也是O(n)。 由于这两个操作是顺序执行的遍历数组和栈操作是同时进行的所以总的时间复杂度是O(n)。 2. 空间复杂度 栈空间在最坏的情况下如果数组是单调递增的那么所有元素都会被压入栈中。因此栈的空间复杂度是O(n)其中n是数组的长度。辅助空间除了栈之外我们只使用了一个额外的变量third来存储中间值这个变量占用的空间是常数级的即O(1)。 因此总的空间复杂度是O(n)由栈的大小决定。 五、总结知识点 数组遍历 使用for循环从后向前遍历数组这是为了能够利用栈来维护一个单调递减的序列。 栈Stack的使用 使用Java的Stack类来存储数组元素的索引栈在这里用于维护一个单调递减的序列帮助我们找到可能的nums[k]。 条件判断 使用if语句来判断是否找到了132模式的子序列。使用while循环来处理栈中元素当栈不为空且当前元素大于栈顶元素时更新third变量。 最小值初始化 使用Integer.MIN_VALUE来初始化third变量确保在比较时能够正确地更新third为更大的值。 栈的基本操作 push()将元素压入栈中。pop()从栈中弹出元素。peek()查看栈顶元素而不弹出。 返回值 方法返回一个布尔值表示是否找到了132模式的子序列。 边界条件检查 在方法开始时检查输入数组是否为空或长度小于3因为至少需要3个元素才能形成132模式。 整数比较 在代码中多次进行了整数比较这是基本的编程操作。 逻辑推理 整个算法的设计基于对132模式的理解以及如何通过栈来维护一个潜在的有效序列这是算法的核心。 以上就是解决这个问题的详细步骤希望能够为各位提供启发和帮助。
http://www.hkea.cn/news/14349857/

相关文章:

  • 网站图片多大合适电商网站设计目的
  • 个人信息网站现在网站怎么备案
  • 淄博网站建设哪家专业王野天津广播
  • 优秀个人网站设计图片奉贤做网站价格
  • 东莞常平做网站公司贵阳做网站的大公司
  • 住房城乡建设部官网站创办网站需要多少钱
  • 怎么建立一个网站平台高考加油html转换器
  • 网站空格 教程新网站怎样做优化
  • 济宁专业做优化的网站网站首页图片滑动怎么做
  • 郑州市做网站公司在阿里云做的网站怎么进后台
  • 福州seo视频怎样做seo网站链接
  • 营销网站的关键字网站左侧浮动代码
  • 专业的上海网站建设公司排名互联网建设网站的的好处
  • 0基础 网站建设整站系统
  • 比较好的网站公司吗营销培训心得体会总结
  • 网站安全 维护深圳网站制作的公司有哪些
  • 织梦素材网站模板免费下载传奇类网页游戏大全
  • 单页网站编辑器落实网站建设培训班精神
  • 网站这么做wordpress官网中文版下载
  • 网站建站四种方案软件工程师薪资待遇
  • 酷黑网站黄页88网免费发布信息
  • 长沙seo网站排名什么app推广佣金多
  • 高端企业网站建设好的公司app下载量查询
  • 有哪些网站做的比较好湖南高端网站制
  • asp影楼网站设计建设视频网站设计意义
  • 电商运营网站设计珠海特价做网站
  • 专门做库存的网站专门做加盟的网站
  • 网站的风格设计中国企业网信息网
  • 张家港设计公司赤峰网站优化
  • 东营网站制作团队二级分销软件