Python|每日一练|数组|回溯|哈希表|全排列|单选记录:全排列 II|插入区间|存在重复元素
1、全排列 II(数组,回溯)
给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。
示例 1:
输入:nums = [1,1,2]
输出:[[1,1,2], [1,2,1], [2,1,1]]
示例 2:
输入:nums = [1,2,3]
输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]
提示:
- 1 <= nums.length <= 8
- -10 <= nums[i] <= 10
选项代码:
from typing import List
class Solution:def permuteUnique(self, nums: List[int]) -> List[List[int]]:ans = []if len(nums) == 0:returnif len(nums) >= 1:return [nums]for index,item in enumerate(nums):res = nums[:index]+nums[index+1:]for j in self.permuteUnique(res):ans.append(j+[item])rel = []for i in ans:if i not in rel:rel.append(i)return rel
# %%
s = Solution()
print(s.permuteUnique(nums = [1,2,3]))
2、插入区间(数组)
给你一个 无重叠的 ,按照区间起始端点排序的区间列表。
在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。
示例 1:
输入:intervals = [[1,3],[6,9]], newInterval = [2,5]
输出:[[1,5],[6,9]]
示例 2:
输入:intervals = [[1,2],[3,5],[6,7],[8,10],[12,16]], newInterval = [4,8]
输出:[[1,2],[3,10],[12,16]]
解释:这是因为新的区间 [4,8] 与 [3,5],[6,7],[8,10] 重叠。
示例 3:
输入:intervals = [], newInterval = [5,7]
输出:[[5,7]]
示例 4:
输入:intervals = [[1,5]], newInterval = [2,3]
输出:[[1,5]]
示例 5:
输入:intervals = [[1,5]], newInterval = [2,7]
输出:[[1,7]]
提示:
- 0 <= intervals.length <= 104
- intervals[i].length == 2
- 0 <= intervals[i][0] <= intervals[i][1] <= 105
- intervals 根据 intervals[i][0] 按 升序 排列
- newInterval.length == 2
- 0 <= newInterval[0] <= newInterval[1] <= 105
选项代码:
class Interval(object):def __init__(self, s=0, e=0):self.start = sself.end = e
class Solution(object):def list2interval(self, list_interval):ret = []for i in list_interval:interval = Interval(i[0], i[1])ret.append(interval)return retdef interval2list(self, interval):ret = []x = [0,0]for i in interval:x[0] = i.startx[1] = i.endret.append(x)x = [0,0]return retdef insert(self, intervals, newInterval):""":type intervals: List[Interval]:type newInterval: Interval:rtype: List[Interval]"""if intervals is None or len(intervals) == 0:return [newInterval]intervals = self.list2interval(intervals)newInterval = Interval(newInterval[0], newInterval[1])intervals.sort(key=lambda x:x.start)pos = 0while pos < len(intervals):if newInterval.end < intervals[pos].start:intervals.insert(pos, newInterval)intervals = self.interval2list(intervals)return intervalsif self.check_overlap(intervals[pos], newInterval):temp = intervals.pop(pos)newInterval = self.merge_intervals(temp, newInterval)else:pos += 1if len(intervals) == 0 or pos == len(intervals):intervals.append(newInterval)intervals = self.interval2list(intervals)return intervalsdef check_overlap(self, curr_int, new_int):if curr_int.start <= new_int.start:if curr_int.end > new_int.start:return Trueelse:if curr_int.start <= new_int.end:return Truereturn Falsedef merge_intervals(self, int1, int2):temp_int = Interval()temp_int.start = min([int1.start, int2.start])temp_int.end = max([int1.end, int2.end])return temp_int
# %%
s = Solution()
print(s.insert(intervals = [[1,5]], newInterval = [2,7]))
3、存在重复元素(数组,哈希表)
给定一个整数数组,判断是否存在重复元素。
如果存在一值在数组中出现至少两次,函数返回 true
。如果数组中每个元素都不相同,则返回 false
。
示例 1:
输入: [1,2,3,1]
输出: true
示例 2:
输入: [1,2,3,4]
输出: false
示例 3:
输入: [1,1,1,3,3,4,3,2,4,2]
输出: true
选项代码:
(有修改,补充用例,方便测试)
from typing import List
class Solution:def containsDuplicate(self, nums: List[int]) -> bool:nums.sort()count = 0while count < len(nums) - 1:if nums[count] == nums[count + 1]:return Truecount += 1return Falseif __name__ == '__main__':nums = [1,2,3,4]s = Solution()print(s.containsDuplicate(nums))
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
Python|每日一练|数组|回溯|哈希表|全排列|单选记录:全排列 II|插入区间|存在重复元素
1、全排列 II(数组,回溯) 给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。 示例 1: 输入:nums [1,1,2]输出:[[1,1,2], [1,2,1], [2,1,1]] 示例 2: 输…...
![](https://img-blog.csdnimg.cn/92f3d6076bcc4423a2687f6b27fe8404.png)
Linux进程状态
Linux进程状态前言阻塞挂起Linux进程状态R运行状态S睡眠状态D磁盘休眠状态T停止状态X死亡状态Z僵尸状态僵尸进程的总结前言 在介绍Linux的进程状态之前,我们先做一个小调查: 正在运行的程序是一直在运行吗?或者说正在运行的程序一直在被cpu处…...
![](https://img-blog.csdnimg.cn/fbb4b7d84d5f45bebdde9029e1b4479b.png)
大数据第一轮复习笔记
linux: 添加用户 useradd 删除用户 userdel useradd -d指定组 添加组 groupadd 删除组 groupdel 创建目录 mkdir -p 删除目录 rm -rf 创建目录 touch cat -n 查看文件(显示行号)...
![](https://img-blog.csdnimg.cn/6cc7d054b5d644dd98df78b33815243a.png)
HTML面试题
HTML面试题部分知识点梳理 1.如何理解HTML语义化 让页面的内容结构化,便于对浏览器、引擎解析,易于阅读,便于维护理解,利于SEO。 2.H5的新特性 video/audio视频/音频canvas 绘画geolocation 定位 用于定位用户的位置WebSocket…...
![](https://img-blog.csdnimg.cn/150265d4328349cea5adf67970ebd1f7.png#pic_center)
CUDA内存管理一文理清|参加CUDA线上训练营
CUDA 内存概述 GPU的内存包括: 全局内存(global memory)常量内存(constant memory)纹理内存核表面内存(texture memory)寄存器(register)局部内存(local me…...
![](https://img-blog.csdnimg.cn/8d0a5585220249bcb1afe166fd14abcd.png)
Transformation(转换算子)
分布式代码的分析 启动spark程序的代码 在yarn中启动(没有配置环境变量) /export/server/spark/bin/spark-submit --master yarn --num-executors 6 /root/helloword.py # 配置环境变量 spark-submit --master yarn --num-executors 6 /root/helloword.py RDD的五大特征 1、…...
![](https://img-blog.csdnimg.cn/14b69b0237464bddb119d1d1d7236213.png)
总结如何设计一款营销低代码可视化海报平台
背景 我所在的部门负责的是活动业务,每天都有很多的营销活动,随之而来的就是大量的H5活动页面。而这些H5活动已经沉淀出了比较固定的玩法交互,我们开发大多数的工作也只是在复制粘贴这种大量的重复工作。 在基于此背景下我开始了低代码平台…...
![](https://img-blog.csdnimg.cn/img_convert/a74394978846304deefc000635ef0d6e.png)
spark04-文件读取分区数据分配原理
接 https://blog.csdn.net/oracle8090/article/details/129013345?spm1001.2014.3001.5502通过上一节知道 总字节数为7 每个分区字节数为3代码val conf: SparkConf new SparkConf().setMaster("local").setAppName("wordcount")val sc: SparkContext ne…...
![](https://img-blog.csdnimg.cn/img_convert/b7759ae5e1cfdc207f091feaec4b0c7d.jpeg)
常见的网络安全攻击及防御技术概述
网络安全技术涉及从物理层到业务层的各个层面,贯穿产品设计到产品上线运营的全流程。现阶段网络攻击的方式和种类也随着互联网技术的发展而不断迭代,做好网络安全防护的前提是我们要对网络攻击有充分的了解。下文将抛砖引玉对常见的网络安全攻击及防御技…...
![](https://img-blog.csdnimg.cn/45598b6600784f1a8bf1166a618429f2.png)
NetSuite Balancing Segment平衡段
春节假期偷了一段时间懒,现在开始工作了。今朝谈一个偏门题目,于未知领域再下一城。说这个题目偏,就要讲讲渊源。话说在Oracle的EBS和Fusion产品中的COA领域有个功能叫做“Balancing Segment”。 问了几位Oracle老炮,也说是对第二…...
![](https://img-blog.csdnimg.cn/f21ceb482f5b4518bbb31f8c5c519940.png)
Docker 中遇到的问题
1:docker-tomcat 篇 第一天启动主机和虚拟机都可以正常访问,晚上睡觉的时候就挂起关机睡觉了,但到了第二天主机访问不了了,ping 也能ping 通,后来停掉容器,重启了虚拟机就好了,就很离谱。 这是成…...
![](https://img-blog.csdnimg.cn/f72cebab41d74485b2e015c687303b2c.png)
树莓派用默认账号和密码登录不上怎么办;修改树莓派的密码
目录 一、重置树莓派的默认账号和密码 二、修改树莓派的密码 三、超级用户和普通用户的切换 一、重置树莓派的默认账号和密码 在SD卡中根目录建立文件userconf 在userconf中输入如下内容: pi:$6$/4.VdYgDm7RJ0qM1$FwXCeQgDKkqrOU3RIRuDSKpauAbBvP11msq9X58c8Q…...
![](https://img-blog.csdnimg.cn/img_convert/646a44edefeb3ed073dfd17c19e3168e.jpeg)
【LeetCode】不同的二叉搜索树 [M](卡特兰数)
96. 不同的二叉搜索树 - 力扣(LeetCode) 一、题目 给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。 示例 1: 输入:n 3 输出&a…...
![](https://img-blog.csdnimg.cn/faeb4e1cf7204a77aa5ef5415584bf7e.png#pic_center)
【软件相关】文献管理工具——Zotero
文章目录0 前期教程1 前言2 一些说明3 下载安装4 功能一:插入文献引用格式5 功能二:从网页下载文献pdf和题录6 功能三:数据多平台同步7 功能四:通过DOI添加条目及添加订阅8 安装xpi插件9 功能五:智能识别中英文文献10 …...
![](https://img-blog.csdnimg.cn/5f7643a7e62149a3874d15f309fbdb6b.gif#pic_center)
leetcode练习一:数组(二分查找、双指针、滑动窗口)
文章目录一、 数组理论基础二、 二分查找2.1 解题思路2.2 练习题2.2.1 二分查找(题704)2.2.2 搜索插入位置(题35)2.2.3 查找排序数组元素起止位置(题34)2.2.4 有效的完全平方数(题367)2.2.5 x 的平方根&…...
![](https://img-blog.csdnimg.cn/img_convert/843b86ef8e6bf7a58bac4aefa7b04820.png)
iPhone更新iOS 16.3出现应用卡死、闪退的问题怎么办?
在升级最新的 iOS 16.3 系统后,有些用户可能遇到了个别应用无法正常打开,卡死的异常情况。大家可以尝试通过如下方式解决问题。 1.重新启动应用: 如果应用出现卡死或闪退,可从 iPhone 屏幕由底往上滑(或连续按两次 H…...
![](https://img-blog.csdnimg.cn/3c896f46f261420cafe389aca07959e2.png)
TCP协议原理一
文章目录一、TCP协议二、TCP工作机制1.确认应答2.超时重传3.连接管理三次握手四次挥手一、TCP协议 我们的TCP协议相比于UDP协议复杂不少,今天我们就来一起学习一下TCP协议报文和原理 首先我们报头第一行里的端口号和UDP的端口号是一致的,都是用两个字节…...
![](https://img-blog.csdnimg.cn/ce427b65706440759114a3e2930cde91.png)
【黑马SpringCloud(6)】Sentinel解决雪崩问题
微服务保护雪崩问题服务保护技术Sentinel微服务整合Sentinel流量控制簇点链路入门练习流控模式关联链路流控效果Warm Up排队等待热点参数限流隔离和降级FeignClient整合Sentinel线程隔离(舱壁模式)实现线程隔离熔断降级慢调用异常比例/异常数授权规则获取origin给网关添加请求头…...
![](https://img-blog.csdnimg.cn/77175a42b3794fa485bfd450de530519.jpeg)
微信小程序 java springboot招聘求职应聘简历系统
应聘系统是基于微信小程序,java编程语言,mysql数据库,springboot框架,idea工具开发,本系统主要分为用户,企业,管理员三个角色,用户注册登陆小程序,查看应聘分类ÿ…...
![](https://img-blog.csdnimg.cn/6ed63a984c03455b9e6f2841964fcc6c.gif)
亿级高并发电商项目-- 实战篇 --万达商城项目 四(Dashboard服务、设置统一返回格式与异常处理、Postman测试接口 )
专栏:高并发---前后端分布式项目 👏作者简介:大家好,我是小童,Java开发工程师,CSDN博客博主,Java领域新星创作者 📕系列专栏:前端、Java、Java中间件大全、微信小程序、…...
![](https://img-blog.csdnimg.cn/e9f4105a773a4e2a9b813f951f62a0e1.png)
为什么这11道JVM面试题这么重要(附答案)
本文内容整理自 博学谷狂野架构师 运行时数据区都包含什么 虚拟机的基础面试题 程序计数器Java 虚拟机栈本地方法栈Java 堆方法区 程序计数器 程序计数器是线程私有的,并且是JVM中唯一不会溢出的区域,用来保存线程切换时的执行行数 程序计数器ÿ…...
![](https://img-blog.csdnimg.cn/2ac9383429744fe99d407f42a1b9912f.png#pic_center)
概率统计之概率篇
概率统计之概率篇 一 随机变量及其四种研究方法 为了更深入地研究随机现象,需要把随机试验的结果数量化,也就是要引进随机变量来描述随机试验的结果。 一般地,把表示随机现象的各种结果或描述随机事件的变量叫做随机变量。随机变量通常用大…...
![](https://img-blog.csdnimg.cn/img_convert/87eae43f42b85cc92ed3bf61a3b70024.png)
综合项目 旅游网 【5.旅游线路收藏功能】
分析判断当前登录用户是否收藏过该线路当页面加载完成后,发送ajax请求,获取用户是否收藏的标记根据标记,展示不同的按钮样式编写代码后台代码RouteServlet/*** 判断当前登录用户是否收藏过该路线*/ public void isFavorite(HttpServletReques…...
![](https://csdnimg.cn/release/blog_editor_html/release2.2.3/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=N176)
【ArcGIS Pro二次开发】(3):UI管理_显示隐藏Tab、Group、Control等控件
在ArcGIS Pro工作中,有时候会涉及到工具栏UI的管理,比如,打开模型构建器时,工具栏才会出现新的选项卡(Tab)【ModelBuilder】,工程未做更改,则【保存】按钮显示灰色不可用。 下面以一个小例子来学习一下。 一…...
![](https://img-blog.csdnimg.cn/ef365995c8ca404eae83b3136f86599e.png)
Spring Boot开发实战——echarts图标填充数据
echarts模块的导入 先看看成品吧! 有的图标的数据用了一些计算框架不是直接查数据库所以有点慢。 ok!😃 上正文,接上节Spring boot项目开发实战——(LayUI实现前后端数据交换与定义方法渲染数据)讲解了一般…...
![](https://www.ngui.cc/images/no-images.jpg)
李达聪老师:互联网时代的B2B品牌如何塑造
李达聪老师:互联网时代的B2B品牌如何塑造互联网时代企业对企业的品牌如何塑造?互联网时代信息传播速度加快,并且各大新品牌就如春天的竹笋涌出,有的昙花一现,有的趁着时代的红利乘胜追击占领市场,建立品牌。有的成为一…...
![](https://img-blog.csdnimg.cn/443d2c4a1de64ca08f54b355fa0d0ab3.png#pic_center)
javaEE 初阶 — 连接管理机制
文章目录连接管理机制1. 建立连接(三次握手)2. 断开连接(四次挥手)TCP 的工作机制确认应答机制 超时重传机制 连接管理机制 比如 主机A 的空间存储了 主机B 的 ip 和 端口,主机B 的空间存储了 主机A 的 ip 和 端口。…...
![](https://img-blog.csdnimg.cn/img_convert/9bfd522e407fdf7c6d8820f3a095bd00.jpeg)
40个改变你编程技能的小技巧!
40个改变编程技能的小技巧 1、将大块代码分解成小函数 2、今日事今日毕,如果没毕,就留到明天。 如果下班之前还没有解决的问题,那么你需要做的,就是关闭电脑,把它留到明天。 中途不要再想着问题了! 3、…...
![](https://img-blog.csdnimg.cn/img_convert/8c932f035e27ee03fdbe85764d59ec54.jpeg)
iTOP3588开发板直连电脑配置方法(无线上网)配置主机IP
首先使用网线连接好主机和开发板,在没有上电的情况下,可以看到以太网显示网络电缆 被拔出,如下图所示: 当开发板上电以后,开发板网卡与笔记本电脑的网卡会连接,如下图所示: 然后右键点击以太网…...
![](https://img-blog.csdnimg.cn/4a5d3e14e38e4ba28fa4e43074b73a97.png)
压电陶瓷换能器导纳圆图公式推导及匹配
压电陶瓷换能器的等效电路图如下图所示,分为左右两个部分左边的电容和电阻并联构成了电路的静态支路,被称为静态电容,可以由电表很方便的测量得到,这部分的参数是由换能器的电学参数决定的。右边的串联构成了动态支路,…...
![](/images/no-images.jpg)
wordpress 自定义模版/艾滋病多长时间能查出来
5.26——工作记录前言过程总结重点前言 目标:1.准备查询的基础sql 2.查询页面, 3.点击设备编码按钮的显示 4.图片 过程 deviceStatusPerceptionEventInfoCommon.jsp <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &…...
![](/images/no-images.jpg)
wordpress主题 her/嘉兴优化公司
一.yum源理解 yum源仓库的地址 在/etc/yum.repos.d/,并且只能读出第一层的repo文件 yum仓库的文件都是以.repo结尾的 二.下载阿里云的.repo仓库文件 ,放到/etc/yum.repos.d/ 备份原本的仓库文件 cd /etc/yum.repos.d/ mkdir allbak mv ./* allbak #此…...
![](https://images2017.cnblogs.com/blog/1198028/201711/1198028-20171116165927702-1962507122.png)
网站后台管理开发/qianhu微建站
1.请阅读并运行AboutException.java示例,然后通过后面的几页PPT了解Java中实现异常处理的基础知识。 (1)import javax.swing.*; class AboutException { public static void main(String[] a) { int i1, j0, k; ki/j; try { …...
![](https://images2015.cnblogs.com/blog/1116773/201703/1116773-20170325161530971-1456017543.png)
网站制作完成需要进行哪些测试/seo站外优化最主要的是什么
4.1 遍历整个列表 我们经常需要遍历列表中的所有元素,对每个列表执行相同的操作。在进行重复性的工作的时候这个很有用,重复性工作。例如,在游戏中,可能需要将每个界面元素平移相同的距离;对于包含数字的列表…...
![](/images/no-images.jpg)
宁波网站建站/荆门今日头条新闻发布
最近看tomcat源码,这类接口多的有点眩,整理出来看一下。(基于tomcat4) javax.servlet.ServletRequset接口,和org.apache.catalina.Request接口,有什么联系? 其实就是对Request不同层面上的定义。…...
![](/images/no-images.jpg)
先做网站还是做APP/上海短视频推广
单片机中级项目13丨矩阵按键数码管移位显示 /******************************************************************************* * 实 验 名 : 动态显示数码管实验 * 使用的IO : 数码管使用P0,P2.2,P2.3,P2.4键盘使用P1 * 实验效果 : 按矩阵键盘分别显示在数码…...