| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 二分二段性/滑动窗口/二叉树 -> 正文阅读 |
|
[数据结构与算法]二分二段性/滑动窗口/二叉树 |
154 寻找旋转排序数组中的最小值 II二分本质上是二段性,而有重复元素的情况下,二段性就被破坏了,要恢复二段性; 因此,可以去掉,头和尾中【相同】的元素,来达到去除不满足的情况; class Solution { ? ? public int findMin(int[] nums) { ? ? ? ? int n = nums.length; ? ? ? ? int l = 0, r = n - 1; ? ? ? ? while (l < r && nums[0] == nums[r]) r--;? // 恢复二段性 ? ? ? ? while (l < r) { ? ? ? ? ? ? int mid = l + r + 1 >> 1; ? ? ? ? ? ? if (nums[mid] >= nums[0]) { ? ? ? ? ? ? ? ? l = mid;//? 这样写保证了找到的是最右边的数 ? ? ? ? ? ? } else { ? ? ? ? ? ? ? ? r = mid - 1; ? ? ? ? ? ? } ? ? ? ? } ? ? ? ? return r + 1 < n ? nums[r + 1] : nums[0];? ? ? ? ? // 如果r+1 > n ,说明没找到,原数组就是自然排列的,因此,第一个数就是最小的 ? ? } } 1438 绝对差不超过限制的最长连续子数组双指针
滑动窗口+双指针三叶题解分析:https://leetcode.cn/problems/longest-continuous-subarray-with-absolute-diff-less-than-or-equal-to-limit/solution/xiang-jie-er-fen-hua-dong-chuang-kou-dan-41g1/
二叉树对称问题二叉树的镜像https://leetcode.cn/problems/er-cha-shu-de-jing-xiang-lcof/ 不能在原来节点的基础上直接进行交换,要重新建立新的节点;而建立新的节点,不能前序进行建立,因为前序并不知道之后节点的情况,而翻转的创建的时候,应要包含子树;否则,子树并没有跟着根节点一起翻转;
对称的二叉树题解 ?
? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/30 0:43:55- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |