力扣46~50题

题46(中等):

分析:

见注释

python代码:

class Solution:def permute(self, nums: List[int]) -> List[List[int]]:#长度小于6,不就是告诉我用递归嘛res=[]#递归函数def call_back(p_list,n_list):#判断终止条件if n_list==[]:returnif len(n_list)==1:p_list.extend(n_list)res.append(p_list)else:for i in range(len(n_list)):#注意数组的深浅拷贝,列表作为形参什么时候回改变p_list_new=p_list.copy()p_list_new.append(n_list[i])n_list_new=n_list[:i]+n_list[i+1:]call_back(p_list_new,n_list_new)call_back([],nums)return res

题47(中等):

分析:

额,直接在上面的代码下加一个判断条件

python代码:

法1:

class Solution:def permuteUnique(self, nums: List[int]) -> List[List[int]]:#长度小于6,不就是告诉我用递归嘛res=[]#递归函数def call_back(p_list,n_list):#判断终止条件if n_list==[]:returnif len(n_list)==1:p_list.extend(n_list)if p_list not in res:res.append(p_list)else:for i in range(len(n_list)):p_list_new=p_list.copy()p_list_new.append(n_list[i])n_list_new=n_list[:i]+n_list[i+1:]call_back(p_list_new,n_list_new)call_back([],nums)return res

法2:

也可以在递归迭代里面加条件

class Solution:def permuteUnique(self, nums: List[int]) -> List[List[int]]:#长度小于6,不就是告诉我用递归嘛res=[]#递归函数def call_back(p_list,n_list):#判断终止条件if n_list==[]:returnif len(n_list)==1:p_list.extend(n_list)res.append(p_list)else:for i in range(len(n_list)):if n_list[i] in n_list[:i]:continuep_list_new=p_list.copy()p_list_new.append(n_list[i])n_list_new=n_list[:i]+n_list[i+1:]call_back(p_list_new,n_list_new)call_back([],nums)return res

题48(中等):

分析:

这道题我是没什么思路,就是想弄一个一样大的空间存储,结果我看了评论区,发现他们的空间思维挺好的,先上下翻再对角线翻,其实也是,我应该要想到的,题目说了直接修改,就是不想我们用第三方,而且不知道几行几列,所以一个找特征,对角线和中线,所以就变出来了

python代码:

class Solution:def rotate(self, matrix: List[List[int]]) -> None:"""Do not return anything, modify matrix in-place instead."""#上下翻n_row=len(matrix)n_col=len(matrix[0])for i in range((n_row)//2):for j in range(n_col):tmp=matrix[i][j]matrix[i][j]=matrix[n_row-1-i][j]matrix[n_row-1-i][j]=tmp#对角线翻for i in range(n_row):for j in range(i):tmp=matrix[i][j]matrix[i][j]=matrix[j][i]matrix[j][i]=tmp

题49(中等):

分析:

没什么分析的

python代码:

class Solution:def groupAnagrams(self, strs: List[str]) -> List[List[str]]:res=[]s_filter={}for i in strs:s=''.join(sorted(i))if s in s_filter.keys():s_filter[s].append(i)else:s_filter[s]=[i]return list(s_filter.values())

题50(中等):

分析:

可以选择循环做,只能算简单,中等都算不上,恐怕是增强信心用的

python代码:

class Solution:def myPow(self, x: float, n: int) -> float:return x**n

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/450113.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Cesiumlab发布3dtiles白膜流程与前端可视化加载

Cesiumlab发布3dtiles白膜流程与前端可视化加载 1.前置准备 1.1 安装CesiumLab并注册(CesiumLab安装、CesiumLab账号注册以及不同授权类型的说明 CesiumLab系列教程 - 知乎 (zhihu.com)); 1.2 最好安装有Qgis可以进行简单数据处理(如果有完整数据可以…

可以在桌面上用的倒计时提醒app下载

在忙碌的工作日常中,我们常常需要记住各种截止日期和重要事件。为了确保这些任务按时完成,一款桌面倒计时提醒应用变得尤为重要。想象一下,当你在电脑桌面上就能清晰地看到剩余时间,这无疑会增加你的工作效率和紧迫感。 敬业签就…

华为eNSP实验:交换机流量控制之流量抑制

一、交换机流量控制之流量抑制 流量抑制是一种网络管理技术,用于防止过量的数据流通过网络设备,从而避免网络拥塞和性能下降。具体如下: 基本原理: 流量抑制通过设置特定的阈值来限制网络中的数据流量。当某个端口或接口的入站流…

Vue是一套构建用户界面的渐进式框架,常用于构建单页面应用

学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……) 2、学会Oracle数据库入门到入土用法(创作中……) 3、手把手教你开发炫酷的vbs脚本制作(完善中……) 4、牛逼哄哄的 IDEA编程利器技巧(编写中……) 5、面经吐血整理的 面试技…

u盘制作启动盘 重装windows系统

操作步骤一般都是把镜像iso文件下载好,然后使用u盘作为启动盘,使用启动盘制作工具,制作 官方重装系统程序 windows10系统下载连接 下载后点击启动 1 就是傻瓜式的安装 u盘安装就选2 然后一路下一步即可 等待完成,启动盘就制作好了 使用rufus 选择对应版本 https://ru…

基于SpringBoot的在线视频教育平台的设计与实现(论文+源码)_kaic

摘 要 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于在线视频教育平台当然也不能排除在外,随着网络技术的不断成熟,带动了在线视频教育平台,它彻底改变了过…

Unity 从零开始搭建一套简单易用的UGUI小框架 基础分析篇

一套UGUI的小框架用一篇文章显然是不够的,因为会很长很长大约有上万字,想必读者也没有那个耐心一点点读完(主要是我也懒),所以我就将其分为三个部分 基础分析篇 功能撰写与优化篇 扩展与总结篇 我将其都放在了同一个专…

【管理】十张逻辑图说透:优秀员工,与普通员工的差别

优秀是一种习惯,如果你仔细留意,同等职位的高级员工与普通员工,在智力水平整体上差别不是很大,差别大的是工作习惯及方式。 01 琐碎工作 面对职场上的琐碎小事,很多员工会抱怨重复性工作,枯燥、无趣得不到…

学习threejs,THREE.LineDashedMaterial 虚线材质,基于gosper高斯帕曲线生成雪花动画

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.LineDashedMaterial虚…

Linux——echo-tail-重定向符

echo命令 类似printf 输出,最好加“ ” echo "hello Linux" 反引号 ‘ ’ 引用命令 echo ‘ pwd ’ 重定向符 > 和 >> > 覆盖 >> 追加 tail命令 查看文件尾部内容,追踪文件最新更改 tail -num 从尾部往上读num行&#…

linux 效率化 - 输入法 - fcitx5

安装 Fcitx5 1. 卸载 ibus 框架 由于 ibus 和 fcitx 可能会冲突,先卸载 ibus(暂未确认原因) sudo apt remove --purge ibus2. 安装 fcitx5 输入法框架 sudo apt update sudo apt install fcitx5 fcitx5-chinese-addons fcitx5-frontend-gtk…

【scene_manager】与 MoveIt 机器人的规划场景进行交互

scene_manager Scene Manager包是由 Robotnik 创建的 ROS 包,旨在帮助构建和与 MoveIt 机器人的规划场景进行交互。 背景信息 MoveIt 规划场景 是一个用于存储机器人周围世界的表示(外部碰撞)以及机器人自身状态(内部碰撞和当…

MySQL 执行流程是怎样的?

可以看到, MySQL 的架构共分为两层:Server 层和存储引擎层, Server 层负责建立连接、分析和执行 SQL。MySQL 大多数的核心功能模块都在这实现。存储引擎层负责数据的存储和读取。 InnoDB、MyISAM、Memory。不同的存储引擎共用一个 Server 层…

Docker新手必看:快速安装和配置BookStack在线文档系统

文章目录 前言1. 安装Docker2. Docker镜像源添加方法3. 创建并启动BookStack容器4. 登录与简单使用5. 公网远程访问本地BookStack5.1 内网穿透工具安装5.2 创建远程连接公网地址5.3 使用固定公网地址远程访问 前言 本文主要介绍如何在Linux系统使用Docker本地部署在线文档管理…

嵌入式-交叉编译链

一、Buildroot Official website: https://buildroot.org/downloads/manual/manual.html Buildroot是Linux平台上一个用于构建嵌入式Linux系统的框架,它简化了系统构建过程并实现了工作的自动化。以下是对Buildroot的详细介绍: 一、概述 …

pdf删除几个页面怎么操作?PDF页面删除的快捷方法

pdf删除几个页面怎么操作?在日常办公与学习中,PDF文件因其跨平台兼容性和良好的格式保持性而广受欢迎。然而,随着文件内容的累积,PDF文档往往会变得庞大而臃肿,不仅占用存储空间,还可能在传输时造成不便。因…

【优选算法篇】双指针的华丽探戈:深入C++算法殿堂的优雅追寻

文章目录 C 双指针详解:进阶题解与思维分析前言第一章:有效三角形的个数1.1 有效三角形的个数示例 1:示例 2:解法一(暴力求解)解法二(排序 双指针)易错点提示代码解读 第二章&#…

在线文字转语音哪个好?教你7个ai文字转语音配音的方法,别错过!

随着人工智能技术的飞速发展,ai文字转语音配音软件已经开始广泛应用,能够生成或修改出逼真的人声。这些文字转语音在线版不仅易于使用,连没有专业音频处理技术的用户也能轻松上手。通过这些软件,您只需简单输入文本或上传音频文件…

【随时随地学算法】本地部署hello-algo结合内网穿透远程学习新体验

文章目录 前言1.关于hello-algo2.安装Docker和Docker compose3.本地部署hello-algo4. hello-algo本地访问5.cpolar内网穿透工具安装6.创建远程连接公网地址7.固定Uptime Kuma公网地址 前言 本篇文章主要介绍如何在本地部署hello-algo算法学习必备项目,并结合cpolar…

PostgreSQL 17重磅登场——世界上最成功的数据库

朋友们,万众期待的 PostgreSQL 大版本发布又来了!这一次,PostgreSQL 17 带着全新的性能优化和开发者必备的新功能强势登场。与其说这是一场普通的更新,不如说它是一场专为高并发工作负载和海量数据量身打造的技术嘉年华&#xff0…