每日5题Day10 - LeetCode 46 - 50

每一步向前都是向自己的梦想更近一步,坚持不懈,勇往直前!

第一题:46. 全排列 - 力扣(LeetCode)

class Solution {//这道题就是一个dfs//把所有结果遍历,到叶子节点就可以添加结果了List<Integer> path = new ArrayList<>();List<List<Integer>> res = new ArrayList<>();public List<List<Integer>> permute(int[] nums) {//要给一个flag数组来判断是否被选过//以此来成为排列、不是组合int[] flag = new int[nums.length];traversal(0, nums, flag);return res;}private void traversal(int startindex, int[] nums, int[] flag){if(startindex == nums.length){res.add(new ArrayList(path));return;}for(int i = 0; i < nums.length; i++){if(flag[i] == 0){flag[i] = 1;path.add(nums[i]);traversal(startindex + 1, nums, flag);path.removeLast();flag[i] = 0;}}}
}

第二题:47. 全排列 II - 力扣(LeetCode)

class Solution {List<List<Integer>> res = new ArrayList<>();List<Integer> path = new ArrayList<>();public List<List<Integer>> permuteUnique(int[] nums) {Arrays.sort(nums);int[] flag = new int[nums.length];traversal(0, res, path, nums, flag);return res;}private void traversal(int start, List<List<Integer>> res, List<Integer> path, int[] nums, int[] flag){if(start == nums.length){res.add(new ArrayList<>(path));return;}for(int i = 0; i < nums.length; i++){//和上一题一样,但是数组会有重复的,//所以我们要剪枝去重if(flag[i] == 1 || (i > 0 && nums[i] == nums[i - 1] && flag[i - 1] == 0)){continue;}flag[i] = 1;path.add(nums[i]);traversal(start + 1, res ,path, nums, flag);path.removeLast();flag[i] = 0;}}
}

第三题:48. 旋转图像 - 力扣(LeetCode)

class Solution {public void rotate(int[][] matrix) {//题目要求不能复制来实现,要原地调转,//所以不能笨笨地复制粘贴,那样会用很多额外空间int n = matrix.length;// 先沿对角线翻转for (int i = 0; i < n; i++) {for (int j = i + 1; j < n; j++) {int temp = matrix[i][j];matrix[i][j] = matrix[j][i];matrix[j][i] = temp;}}// 再沿中线左右翻转for (int i = 0; i < n; i++) {for (int j = 0; j < n / 2; j++) {int temp = matrix[i][j];matrix[i][j] = matrix[i][n - 1 - j];matrix[i][n - 1 - j] = temp;}}}
}

第四题:49. 字母异位词分组 - 力扣(LeetCode)

class Solution {public List<List<String>> groupAnagrams(String[] strs) {// 朴素的做法,时间长但是空间非常小// 使用 flag 数组标记已经处理过的字符串int[] flag = new int[strs.length];// 结果列表List<List<String>> res = new ArrayList<>();// 遍历每个字符串for(int i = 0; i < strs.length; i++){// 如果当前字符串已经处理过,直接跳过if(flag[i] == 1){continue;}// 临时列表,用于存放同一组异位词List<String> tmp = new ArrayList<>();// 统计当前字符串的字符频率int[] fre = new int[26];for(int j = 0; j < strs[i].length(); j++){fre[strs[i].charAt(j) - 'a']++;}// 遍历剩余字符串,寻找异位词for(int k = i; k < strs.length; k++){int flagg = 0;// 如果当前字符串已经处理过,直接跳过if(flag[k] == 1){continue;}// 统计当前遍历到的字符串的字符频率int[] free = new int[26];for(int j = 0; j < strs[k].length(); j++){free[strs[k].charAt(j) - 'a']++;}// 检查是否为异位词for(int x = 0; x < 26; x++){if(fre[x] != free[x]){flagg = 1;break;}}// 如果是异位词,则加入临时列表,并标记已处理if(flagg == 0){tmp.add(strs[k]);flag[k] = 1;}}// 将当前异位词组加入结果列表res.add(tmp);}return res;}
}

 第五题:50. Pow(x, n) - 力扣(LeetCode)

class Solution {public double myPow(double x, int n) {// 这道题最适合就是使用递归来实现// 如果指数为0,则结果为1if(n == 0) {return 1.0;}// 如果指数为负数,则将底数取倒数,指数取绝对值if(n < 0) {return 1 / (x * myPow(x, -(n + 1)));}// 如果指数为正数,则使用递归计算幂double temp = myPow(x, n / 2);// 如果指数为偶数,则结果为 temp 的平方if(n % 2 == 0) {return temp * temp;} else { // 如果指数为奇数,则结果为 temp 的平方乘以底数return temp * temp * x;}}
}

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

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

相关文章

git回退到指定版本,同时提交记录也会删除

第一步&#xff1a; git reset --hard xxx (需要恢复版本的 commit id)第二步&#xff1a;branch_name就是远程分支的名称 git push origin <branch_name> --force

异相(相位不平衡)状态下的合成器效率分析-理论与ADS仿真

异相&#xff08;相位不平衡&#xff09;状态下的合成器效率分析-理论与ADS仿真 12、ADS使用记录之功分器设计中简单介绍了威尔金森功分器的设计方法。一般来讲&#xff0c;功分器反过来就能作为合路器使用&#xff0c;在输入信号相位一致的情况下&#xff0c;各种合路器的效率…

mySql从入门到入土

基础篇 在cmd中使用MYSQL的相关指令&#xff1a; net start mysql // 启动mysql服务 net stop mysql // 停止mysql服务 mysql -uroot -p1234//登录MYSQL&#xff08;-u为用户名-p为密码&#xff09; //登录参数 mysql -u用户名 -p密码 -h要连接的mysql服务器的ip地址(默认1…

infoq读书笔记-云原生时代,如何建设稳定性可观测体系?

而可观测性则是把Log、Trace、Metric拧成了一股绳&#xff0c;让三大支柱互相之间建立亲密的“血缘关系”&#xff0c;通过这种关系我们可以结构化的从整体到局部再到具体细节的观测业务&#xff1a; 图片来自网络如果把业务系统比作一座海上的冰山&#xff0c;监控仅能看到的…

回见,那果园

记不得何时开始骑行&#xff0c;何时开始爬山&#xff0c;何时偶遇洛师傅&#xff0c;何时进了那半山腰的果园。 似乎很远&#xff0c;又很近。 昨天打电话给果园的师傅&#xff0c;本意问问杏是否熟了&#xff0c;周末骑行过去、进山聊天顺道吃个新鲜。 洛师傅呵呵的笑…

Unity | 框架MVC

目录 一、MVC介绍 二、搭建UI界面 三、代码实现 1.Model层 2.View层 3.Controller层 四、MVC框架测试 五、知识补充 一、MVC介绍 model&#xff1a;数据层。界面展示的数据&#xff08;需要进行初始化、更新、保存、事件通知等操作&#xff09;&#xff0c;单例模式&am…

【golang】内存对齐

什么是内存对齐 在访问特定类型变量的时候通常在特定的内存地址访问&#xff0c;这就需要对这些数据在内存中存放的位置有限制&#xff0c;各种类型数据按照一定的规则在空间上排列&#xff0c;而不是顺序的一个接一个的排放&#xff0c;这就是对齐。 内存对齐是编译器的管辖…

机器视觉-硬件

机器视觉-硬件 镜头焦距凸透镜焦点不止一个相机镜头由多个镜片组成对焦和变焦 镜头光圈光圈的位置光圈系数F 镜头的景深景深在光路中的几何意义 远心镜头远心镜头的种类远心镜头特性应用场景 镜头的分辨率镜头反差镜头的MTF曲线镜头的靶面尺寸镜头的几何相差相机镜头接口螺纹接…

个人手里有一批宽带资源,想跑PCDN 如何做?

网友问我手里有一批宽带资源&#xff0c;想要跑PCDN该如何做&#xff0c;可以按照以下步骤操作&#xff1a; 了解PCDN的基本原理和市场需求。PCDN&#xff08;Peer-to-Content Delivery Network&#xff09;是一种基于P2P技术的内容分发网络&#xff0c;通过将用户设备上的空闲…

javas-core VS java-object-diff

对照工具选择 javas-core 和 java-object-diff ,对比demo https://github.com/kofgame/objectdiff-vs-javers&#xff0c;都为同源对比&#xff0c;都支持嵌套对象。 使用JMH测试方法进行性能测试&#xff0c;使用题库的QuestionResponseVO对象来进行对照对比&#xff0c;进行…

【Python搞定车载自动化测试】——Python基于Pytest框架实现UDS诊断自动化(含Python源码)

系列文章目录 【Python搞定车载自动化测试】系列文章目录汇总 文章目录 系列文章目录&#x1f4af;&#x1f4af;&#x1f4af; 前言&#x1f4af;&#x1f4af;&#x1f4af;一、环境搭建1.软件环境2.硬件环境 二、目录结构三、源码展示1.诊断基础函数方法2.诊断业务函数方法…

深入探索Python基础:两个至关重要的函数

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、初学者的基石&#xff1a;print与input函数 二、类型转换&#xff1a;从字符串到浮点数…

【完整解析】2024电工杯数学建模A题论文与代码

园区微电网风光储协调优化配置 1 论文2 代码分享2.1 第三题第一问 3 数据与代码 1 论文 2 代码分享 2.1 第三题第一问 function anssq3w1ObjFun(ttt,id); %ttttt(1); tt[750,0,0,1000,600,500]; limttt(1)*200; limmttt(2)*500*0.9-ttt(2)*500*0.1; t1ttt(3)*1000;t2ttt(4)*1…

ASP+ACCESS多功能论坛程序设计

摘 要 随着计算机的广泛应用&#xff0c;人们已经对网络不再感到陌生。在科技飞速发展的今天&#xff0c;电脑信息技术与各行各业进行了有效的结合。人们在网上可以进行网上购物&#xff0c;网上交友&#xff0c;电子商务&#xff0c;网络营效等等。面对强大的网络功能&#x…

通过Kafka-Logger插件收集流量进行漏洞扫描

通过Kafka-Logger插件收集流量进行漏洞扫描 方案 可以通过APISIX kafka-logger 插件将日志作为 JSON 对象推送到 Apache Kafka 集群中&#xff0c;消费Kafka里的数据格式化后添加到MySQL。 方案详情 1、登录APISIX&#xff0c;启用内置的kafka-logger 插件&#xff1a; 2…

从 0 实现一个文件搜索工具 (Java 项目)

背景 各文件系统下, 都有提供文件查找的功能, 但是一般而言搜索速度很慢 本项目仿照 everything 工具, 实现本地文件的快速搜索 实现功能 选择指定本地目录, 根据输入的信息, 进行搜索, 显示指定目录下的匹配文件信息文件夹包含中文时, 支持汉语拼音搜索 (全拼 / 首字母匹配…

DiffMap:首个利用LDM来增强高精地图构建的网络

论文标题&#xff1a; DiffMap: Enhancing Map Segmentation with Map Prior Using Diffusion Model 论文作者&#xff1a; Peijin Jia, Tuopu Wen, Ziang Luo, Mengmeng Yang, Kun Jiang, Zhiquan Lei, Xuewei Tang, Ziyuan Liu, Le Cui, Kehua Sheng, Bo Zhang, Diange Ya…

解决go install 网络问题

rootiZbp1hiqzlhh6w05gloffgZ:~# go install mvdan.cc/garblelatest go: mvdan.cc/garblelatest: module mvdan.cc/garble: Get "https://proxy.golang.org/mvdan.cc/garble/v/list": dial tcp 172.217.160.81:443: i/o timeout解决方法 更换阿里代理 rootiZbp1hiq…

浅论未来 IT 和财务结合的趋势

前言 会计核算企业各类业务单据&#xff0c;所有业务部门的数据都会汇流到财务部来&#xff0c;所以会计其实是企业的数据中心&#xff1b;而 IT 技术正是处理数据的利器&#xff0c;可以将重复的流程自动化&#xff0c;还能将财务数据可视化&#xff1b;因此&#xff0c;两者…

SPI通信(STM32)

一、SPI通信 &#xff11;、SPI&#xff08;Serial Peripheral Interface&#xff09;是由Motorola公司开发的一种通用数据总线 &#xff12;、四根通信线&#xff1a;SCK&#xff08;Serial Clock&#xff09;、MOSI&#xff08;Master Output Slave Input&#xff09;、MIS…