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

面试经典150题(85-87)

leetcode 150道题 计划花两个月时候刷完,今天(第四十三天)完成了3道(85-87)150:

85.(77. 组合)题目描述:

给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。
你可以按 任何顺序 返回答案。
输入:n = 4, k = 2
输出:
[[2,4],[3,4],[2,3],[1,2],[1,3],[1,4],]

第一版(昨天就是这个卡了好久没弄出来,今天还是没思路啊。。看了解题,感觉都是一个for 然后for里面嵌套。看看解题的代码吧)

class Solution {List<List<Integer>> res=new ArrayList();public List<List<Integer>> combine(int n, int k) {if(n<k){return res;}selectKNum(n,k,1,new ArrayList<Integer>());return res;}public void selectKNum(int n, int k,int start,List<Integer> list) {if(list.size()==k){res.add(new ArrayList(list));return ;}for(int i=start;i<=n;i++){list.add(i);selectKNum(n,k,i+1,list);list.remove(list.size()-1);}}
}

86.(46. 全排列)题目描述:

给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。
输入:nums = [1,2,3]
输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]

第一版(还是解题,感觉这个又是另一种回溯的题型)

class Solution {List<List<Integer>> res=new ArrayList();public List<List<Integer>> permute(int[] nums) {boolean[] used = new boolean[nums.length];permuteCore(nums,used,new ArrayList<Integer>());return res;}public void permuteCore(int[] nums,boolean[] used,List<Integer> list){if(list.size()==nums.length){res.add(new ArrayList(list));return ;}for(int i=0;i<nums.length;i++){if(used[i]){continue;}list.add(nums[i]);used[i]=true;permuteCore(nums,used,list);used[i]=false;list.remove(list.size()-1);}}
}

87.(39. 组合总和)题目描述:

给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。
candidates 中的 同一个 数字可以 无限制重复被选取 。如果至少一个数字的被选数量不同,则两种组合是不同的。 
对于给定的输入,保证和为 target 的不同组合数少于 150 个。
candidates 全是大于0的整数
输入:candidates = [2,3,6,7], target = 7
输出:[[2,2,3],[7]]

第一版(根据之前的两个题的解题,照猫画虎写了一版。。终于自己写了一版了,虽然性能不是很好)

class Solution {List<List<Integer>> res=new ArrayList();Set<String> set=new HashSet();public List<List<Integer>> combinationSum(int[] candidates, int target) {combinationSumCore(candidates,target,new ArrayList<Integer>());return res;}public void combinationSumCore(int[] candidates,int target,List<Integer> list){if(0==target){List<Integer> temp=new ArrayList(list);temp.sort((i1,i2)->{return i1-i2;});if(set.add(temp.toString())){res.add(temp);}return ;}for(int i=0;i<candidates.length;i++){if(target<0){break;}if(target-candidates[i]<0){continue;}list.add(candidates[i]);combinationSumCore(candidates,target-candidates[i],list);list.remove(list.size()-1);}}
}

第二版(看了解题,讲的还是理解不了,就照着写了一版,真的是性能从 104ms->5ms 质的飞跃)

class Solution {List<List<Integer>> res=new ArrayList();Set<String> set=new HashSet();public List<List<Integer>> combinationSum(int[] candidates, int target) {combinationSumCore(candidates,0,target,new ArrayList<Integer>());return res;}public void combinationSumCore(int[] candidates,int start,int target,List<Integer> list){if(0==target){res.add(new ArrayList(list));return ;}for(int i=start;i<candidates.length;i++){if(target<0){break;}if(target-candidates[i]<0){continue;}list.add(candidates[i]);combinationSumCore(candidates,i,target-candidates[i],list);list.remove(list.size()-1);}}
}

就这两天回溯我感觉咋都是 for 加递归调用。。但是不好理解。。不行就背下来(笨人做法)

加油,第四十三天了,早日跳槽啊!!!

相关文章:

面试经典150题(85-87)

leetcode 150道题 计划花两个月时候刷完&#xff0c;今天&#xff08;第四十三天&#xff09;完成了3道(85-87)150&#xff1a; 85.&#xff08;77. 组合&#xff09;题目描述&#xff1a; 给定两个整数 n 和 k&#xff0c;返回范围 [1, n] 中所有可能的 k 个数的组合。 你可…...

【C++】“Hello World!“

&#x1f984;个人主页:修修修也 &#x1f38f;所属专栏:C ⚙️操作环境:Visual Studio 2022 ​ 2024.1.14 纪念一下自己编写的第一个C程序 #include<iostream>int main() {/*我的第一个C程序*/std::cout << "Hello world!:>" <<std::endl;ret…...

系统性学习vue-vue中的ajax

vue中的ajax 配置代理常用发送Ajax请求方式跨域方式一方式二 vue-resource插槽默认插槽具名插槽作用域插槽 配置代理 常用发送Ajax请求方式 xhr new XMLHttpRequest() 在真正开发中不常用&#xff0c;比较麻烦jQuery 封装了xhraxios 封装了xhr 与jQuery相比优势是&#xff1a…...

【PGSQL】date_trunc 函数

date_trunc 函数用于在 PostgreSQL 中将日期或时间戳值截断&#xff08;向下取整&#xff09;到指定的精度级别。当您想要忽略较小的时间单位&#xff08;例如&#xff0c;小时、分钟、秒&#xff09;&#xff0c;专注于较大的单位&#xff08;例如&#xff0c;天、月、年&…...

使用composer生成的DMG和PKG格式软件包有何区别

在使用Composer从包源构建软件包时候&#xff0c;有两种不同类型的包&#xff1a;PKG和DMG。你知道两者之间的区别吗? 以及如何选取吗&#xff1f; 每种格式都有各自的优势具体取决于软件包的预期用途以及用于部署软件包的工具。下面我们来了解一下PKG和DMG格式的区别和用途。…...

Linux 压缩解压

.tar &#xff08;注&#xff1a;tar是打包&#xff0c;不是压缩&#xff01;&#xff09; 解包&#xff1a;tar xvf FileName.tar -C DirName打包&#xff1a;tar cvf FileName.tar DirName .gz 解压1&#xff1a;gunzip FileName.gz解压2&#xff1a;gzip -d FileName.gz压…...

YUM仓库和NFS共享

目录 一、yum仓库 1. yum仓库介绍 1.1 简介 1.2 实现过程 1.3 实现安装服务 2. yum配置文件及命令 2.1 yum配置文件 2.1.1 yum主配置文件 2.1.2 仓库设置文件 2.1.3 日志文件 2.2 yum命令详解 2.2.1 查询 2.2.2 yum安装升级 2.2.3 软件卸载 3. 搭建仓库的方式 …...

Springboot中时间格式化

时间格式化方式 JsonFromat方式全局配置方式格式化工具方式 JsonFromat方式 前端传参或后端响应 yyyy-MM-dd HH:mm:ss 格式&#xff0c;直接属性字段上加注解 JsonFromat JsonFromat(pattern "yyyy-MM-dd HH:mm:ss", timezone "GMT8") private Date fi…...

蓝桥杯基础知识3 memset()

蓝桥杯基础知识3 memset() #include <bits/stdc.h> using namespace std;int main(){int a[5]; //随机数for(int i 0;i < 5; i)cout << a[i] << \n;cout << \n;memset(a, 0, sizeof a); //0for(int i 0;i < 5; i)cout << a[i] << …...

CentOS安装k8s单机/集群及一些命令

目录 前言 1. 安装docker 2. 安装要求 3.准备网络&#xff08;如果只装单机版可跳过此部&#xff09; 4. 准备工作 5. 安装 5.1. 配置阿里云yum k8s源 5.2 安装kubeadm、kubectl和kubelet 5.3 初始化&#xff0c;只在master执行&#xff0c;子节点不要执行 5.3.1 一些…...

iOS和安卓端个人踩坑史

本公司不提供测试机&#xff0c;借手机是开发测试中最麻烦的事 iOS可行组 1、iOS可以播放视频无声音&#xff0c;Andorid有声音 当时做了个远程视频连接项目&#xff0c;使用了jitsi第三方视频服务&#xff0c;iOS没有加dom.play()导致无法接收声音 2、iOS可以长按保存图片…...

前端面试Vue部分补充(详细)

1、vue的基本原理 Vue的基本原理是基于MVVM&#xff08;Model-View-ViewModel&#xff09;模式的前端框架。它通过数据绑定和响应式系统来实现数据和视图的自动同步更新。 Vue的基本原理可以概括为以下几个步骤&#xff1a; 1). 解析模板&#xff1a;Vue通过解析模板来生成虚…...

计算机网络重点简答题

文章目录&#xff08;持续更新&#xff09; 计算机网络重点简答题&#x1f4e3;一、什么是TCP/IP的五层参考模型&#xff1f;✨1.是什么✨2.主要功能✨3.数据包的封装和解封装 &#x1f4e3;二、TCP与UDP的区别&#xff1f; 计算机网络重点简答题 &#x1f4e3;一、什么是TCP/…...

【迅搜17】SCWS分词(二)自定义字典及分词器

SCWS分词&#xff08;二&#xff09;自定义字典及分词器 经过上篇文章的学习&#xff0c;相信大家对分词的概念已经有了更深入的了解了吧。我们也知道了&#xff0c;SCWS 是 XS 中的一个重要组成部分&#xff0c;但它也是可以单独拿出来使用的。而对于分词器来说&#xff0c;不…...

深度学习记录--偏差/方差(bias/variance)

误差问题 拟合神经网络函数过程中会出现两种误差&#xff1a;偏差(bias)和方差(variance) 偏差和误差的区别 欠拟合(underfitting) 当偏差(bias)过大时&#xff0c;如左图&#xff0c;拟合图像存在部分不符合值&#xff0c;称为欠拟合(underfitting) 过拟合(overfitting) …...

React16源码: React中的renderRoot的源码实现

renderRoot 1 &#xff09;概述 renderRoot 是一个非常复杂的方法这个方法里处理很多各种各样的逻辑, 它主要的工作内容是什么&#xff1f;A. 它调用 workLoop 进行循环单元更新 遍历整个 Fiber Tree&#xff0c;把每一个组件或者 dom 节点对应的Fiber 节点拿出来单一的进行更…...

GitHub项目推荐-incubator

项目地址 Github地址&#xff1a;GitHub - apache/incubator-anser 官网&#xff1a;Apache Answer | Free Open-source Q&A Platform 项目简述 这是Apache的一个开源在线论坛&#xff0c;也可以部署成为一个自有的QA知识库。项目主要使用了Go和Typescript来开发&#…...

如何使用ActiveMQ

ActiveMQ是Apache的一款开源消息总线&#xff0c;主要用来做消息的分发。使用ActiveMQ&#xff0c;通常需要以下步骤&#xff1a; 一、启动ActiveMQ 首先需要下载ActiveMQ&#xff0c;然后进行启动。启动后&#xff0c;可以在控制台创建队列&#xff0c;初始用户名和密码通常…...

《Python 3 基础》- numpy的array,python的list、tuple的区别与联系再辨析

这里写自定义目录标题 一、基本认识二、list与传统数组&#xff08;以C为例&#xff09;的联系与区别三、1维list切片规则四、2维list类似于2维数组&#xff0c;但表达方式需适应五、list与元组的联系与区别1. tuple的创建方法类似于list&#xff0c;tuple用&#xff08;&#…...

写点东西《最佳 Web 框架不存在 》

写点东西《&#x1f947;最佳 Web 框架不存在 &#x1f6ab;》 TLDR&#xff1b;您选择的 Web 应用程序框架并不重要。嗯&#xff0c;它很重要&#xff0c;但并不像其他人希望您相信的那样重要。 2024 年存在如此多的库和框架&#xff0c;而且最好的库和框架仍然备受争议&…...

通过Taotoken的CLI工具一键配置开发环境与API密钥

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 通过Taotoken的CLI工具一键配置开发环境与API密钥 对于需要接入多个大模型服务的开发团队而言&#xff0c;统一管理API密钥和端点配…...

网络资源嗅探与下载技术实践:res-downloader跨平台解决方案

网络资源嗅探与下载技术实践&#xff1a;res-downloader跨平台解决方案 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 在当今…...

如何3分钟上手B站视频下载神器:BilibiliDown跨平台下载完全指南

如何3分钟上手B站视频下载神器&#xff1a;BilibiliDown跨平台下载完全指南 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader &#x1f633; 项目地址: https://gitcode.com/gh_…...

构建企业内部知识问答Agent时如何借助Taotoken降低模型依赖风险

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 构建企业内部知识问答Agent时如何借助Taotoken降低模型依赖风险 应用场景类&#xff0c;企业在开发基于大模型的内部分析Agent时&a…...

Claude Desktop Debian版打包技术详解:deb、rpm、AppImage格式对比

Claude Desktop Debian版打包技术详解&#xff1a;deb、rpm、AppImage格式对比 【免费下载链接】claude-desktop-debian Claude Desktop for Linux 项目地址: https://gitcode.com/GitHub_Trending/cl/claude-desktop-debian Claude Desktop Debian版是一个为Linux用户提…...

ABAQUS结果导出太麻烦?试试这个隐藏技巧,5分钟搞定截面节点应力数据到Excel

ABAQUS结果导出效率革命&#xff1a;5分钟精准捕获截面节点数据的全流程指南 在结构仿真分析领域&#xff0c;数据后处理往往消耗工程师40%以上的工作时间。当我第一次面对ABAQUS中复杂的应力云图&#xff0c;试图提取某个螺栓连接面的节点应力数据时&#xff0c;整整浪费了两天…...

智在记录 AI 语音转写效果实测与场景价值展示

在日常的高强度工作与学习中&#xff0c;我们常常面临一个共同的痛点&#xff1a;信息输入的速度远远超过了我们消化和记录的能力。无论是长达两小时的部门战略会议&#xff0c;还是节奏飞快的在线网课&#xff0c;亦或是需要精准捕捉细节的医疗问诊&#xff0c;传统的“笔头记…...

金融数据宝藏库:沪深Level2与高频数据拆解

被高频数据搞懵了&#xff1f;硬盘空间就是这么没的。刚入坑那会儿&#xff0c;总想用最细的数据&#xff0c;结果光下载和整理就耗掉大半天&#xff0c;策略还没写呢。 今天简单聊聊几种常见的高频数据到底有啥区别&#xff0c;主要是沪深股票这块。数据来源是CMES金融数据库&…...

[开源] 交班信息一致性校验系统:面向临床医护的实时语义冲突检测与结构化摘要生成

本项目是专为国内医院交班场景设计的电子病历&#xff08;EMR&#xff09;辅助工具&#xff0c;解决护士与医生在护理记录和病程记录中同步填写、异步理解、隐性冲突这一长期存在的质控盲区。我们不替代人工判断&#xff0c;而是把“同一时间窗内两条记录是否说同一件事”这件事…...

昇腾CANN cann-samples:从示例代码到生产力工具的全路径

CANN 55 个仓库里&#xff0c;cann-samples 是最容易被低估的一个。它不定义新算子、不优化性能、不做架构设计——只提供可运行的代码示例。但正是因为「只提供示例」&#xff0c;cann-samples 是新手最快上手、老手最常查阅的仓库。每个示例都是独立可编译的项目&#xff1a;…...