| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> LeetCode 1470 - 1473 -> 正文阅读 |
|
[数据结构与算法]LeetCode 1470 - 1473 |
?重新排列数组? 给出一个数组 nums,数组中一共有 2n 个元素,分为两段,第一段是 x1 ~ xn,第二段是 y1 ~ yn 需要把它重新排列为 示例1: 2、5、1、3、4、7??????? n = 3 开一个新的数组用来记录最终答案,从 0 ~ n - 1 去遍历一遍,每次把当前循环变量指向的这个数放到数组的最后一个位置,再把它后面的和它配对的一个数(当前指针 + n 的位置上的数) 放在后面,最后把指针往后移动一位. . . 时间复杂度 O( n ),n 的范围为 500 ?
数组中的 k 个最强值给出一个数组和一个整数 k,定义了数组中两个元素比较大小的方式:先求数组里面的中位数,假设中位数是 m,按照如下方式来比较两个变量的大小,如果 任何两个元素之间都可以作比较 需要排序 数据范围为 10^5,时间复杂度要控制在 nlogN 中位数的定义: 如果是奇数个数,中位数一定是最中间这个数,如果是偶数个数,中位数是中间偏左的那个数 在 sort 函数中传入自定义的比较方式 输入的数组不一定是有序的,想求中位数的话需要先给它排序 注意 Lambda 表达式中间不能写变量,可以加引用 &
设计浏览器历史记录实现一个类,需要维护游览器的历史记录,一共有三种操作:进到某个新页面,退回到某个页面,前进到某个页面,要求实现这三个操作,最开始在根目录 homepage 注意:从当前页跳转访问 示例1: 根目录是 LeetCode,先访问 Google,再访问 Facebook,再访问 YouTube,回退一步输出 Facebook,再回退一步输出 Google,再前进一步输出 Facebook,从 Facebook 访问新的页面 LinkedIn:会把 Facebook→ YouTube 的分支删除,重新连接到 LinkedIn,再前进一步,由于后面没有页面就把前进当作没有发生过,所以从 LinkedIn 再前进的话 前进不了,还是 LinkedIn,输出 LinkedIn,再回退两格,退到 Google,输出 Google,再回退两格,没有得退了,还是 LeetCode,输出 LeetCode. . . 维护一个 vector,每个元素最多只会被插入一次,删除一次,时间复杂度 O( 1 ),整个算法时间复杂度 O( n )
粉刷房子 III |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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年11日历 | -2024/11/26 5:23:18- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |