力扣labuladong——一刷day06

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、力扣322. 零钱兑换
  • 二、力扣509. 斐波那契数
  • 三、力扣46. 全排列
  • 四、力扣51. N 皇后
  • 五、力扣52. N 皇后 II


前言


一、力扣322. 零钱兑换

class Solution {public int coinChange(int[] coins, int amount) {int[] dp = new int[amount+1];Arrays.fill(dp,Integer.MAX_VALUE);dp[0] = 0;for(int i = 0; i < coins.length; i ++){for(int j = coins[i]; j <= amount; j ++){if(dp[j-coins[i]] != Integer.MAX_VALUE){dp[j] = Math.min(dp[j],dp[j-coins[i]] + 1);//最大值加1就会变成负数了}}}return dp[amount] == Integer.MAX_VALUE ? -1:dp[amount];}
}

二、力扣509. 斐波那契数

class Solution {public int fib(int n) {if(n == 0 || n == 1){return n;}int[] dp = new int[n+1];dp[0] = 0;dp[1] = 1;for(int i = 2; i <= n; i ++){dp[i] = dp[i-1] + dp[i-2];}return dp[n];}
}

三、力扣46. 全排列

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

四、力扣51. N 皇后

class Solution {List<List<String>> res = new ArrayList<>();public List<List<String>> solveNQueens(int n) {char[][] ch = new char[n][n];for(int i = 0; i < n; i ++){for(int j = 0; j < n; j ++){ch[i][j] = '.';}}fun(ch,0,n);return res;}public void fun(char[][] ch, int depth,int n){if(depth == n){List<String> path = new ArrayList<>();for(char[] temp : ch){path.add(new String(temp));}res.add(path);return;}for(int i = 0; i < n; i ++){if(flag(ch, depth,i,n)){ch[depth][i] = 'Q';fun(ch,depth+1, n);ch[depth][i] = '.';}}}public boolean flag(char[][] ch, int row, int col, int n){//判断行for(int i = 0; i < col;i ++){System.out.println("row = " + row + " __ col = " + i);if(ch[row][i] == 'Q'){return false;}}//判断列for(int i = 0; i < row; i ++){if(ch[i][col] == 'Q'){return false;}}//判断45°for(int i = row, j = col; i >= 0 && j >= 0 ; i --, j --){if(ch[i][j] == 'Q'){return false;}}//判断135度for(int i = row, j = col; i >= 0 && j < n; i --, j ++){if(ch[i][j] == 'Q'){return false;}}return true;}
}

五、力扣52. N 皇后 II

class Solution {int res = 0;public int totalNQueens(int n) {char[][] ch = new char[n][n];for(int i = 0; i < n; i ++){for(int j = 0; j < n; j ++){ch[i][j] = '.';}}fun(ch,0,n);return res;}public void fun(char[][] ch, int depth,int n){if(depth == n){res ++;return;}for(int i = 0; i < n; i ++){if(flag(ch, depth,i,n)){ch[depth][i] = 'Q';fun(ch,depth+1, n);ch[depth][i] = '.';}}}public boolean flag(char[][] ch, int row, int col, int n){//判断行for(int i = 0; i < col;i ++){System.out.println("row = " + row + " __ col = " + i);if(ch[row][i] == 'Q'){return false;}}//判断列for(int i = 0; i < row; i ++){if(ch[i][col] == 'Q'){return false;}}//判断45°for(int i = row, j = col; i >= 0 && j >= 0 ; i --, j --){if(ch[i][j] == 'Q'){return false;}}//判断135度for(int i = row, j = col; i >= 0 && j < n; i --, j ++){if(ch[i][j] == 'Q'){return false;}}return true;}
}

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

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

相关文章

VUE3新组件 — Vue3

1. 新组件 1) Fragment(片断) 在Vue2中: 组件必须有一个根标签在Vue3中: 组件可以没有根标签, 内部会将多个标签包含在一个Fragment虚拟元素中好处: 减少标签层级, 减小内存占用 <template><h2>aaaa</h2><h2>aaaa</h2> </template>2) T…

成为CSS选择器大师,让你的网页瞬间提升品味!

&#x1f3ac; 江城开朗的豌豆&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 &#x1f4dd; 个人网站 :《 江城开朗的豌豆&#x1fadb; 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! 目录 ⭐ 专栏简介 &#x1f4d8; 文章引言 一、选…

【tg】9 : InstanceImpl 、 虚拟的音频渲染设备FakeAudioDeviceModuleImpl

代码分布 WebRTC-Manager 线程:manager线程 G:\CDN\P2P-DEV\tdesktop-offical\Telegram\ThirdParty\tgcalls\tgcalls\InstanceImpl.h Manager 使用的是 WebRTC-Manager 线程 InstanceImpl 对Manager 的封装和调用 #

pycharm转移缓存目录

原来的缓存目录为C:\Users\86176\AppData\Local\JetBrains&#xff0c;各种配置文件、缓存文件随着pycharm的使用堆积在这里&#xff0c;导致C盘逐渐爆满。 因此需要将缓存目录转移至D盘。首先需要了解缓存目录的知识。 PyCharm 和其他 JetBrains 的 IDE 通常会有两个关键的目…

Ansible playbook的block

环境 控制节点&#xff1a;Ubuntu 22.04Ansible 2.10.8管理节点&#xff1a;CentOS 8 block 顾名思义&#xff0c;通过block可以把task按逻辑划分到不同的“块”里面&#xff0c;实现“块操作”。此外&#xff0c;block还提供了错误处理功能。 task分组 下面的例子&#x…

FPGA与人工智能泛谈-01

文章目录 前言一、FPGA(Field Programmable Gate Array)是什么?二、与GPU的对比1.GPU特点2. FPGA的优势三、人工智能实现的基础架构总结前言 人工智能技术的快速发展正从各个方面改变人类的生活、工作及教育等各个方面,其中人工智能算法的演进又是其中的关键一步,其中会涉及…

Nodejs和Node-red的关系

NPM相关知识 npm概念 npm&#xff1a;Node Package Manager&#xff0c;Node包管理器。是Node.js默认的&#xff0c;以JavaScript编写的软件包管理系统。 npm工作原理 npm的操作原理是各个官网使用npm publish把代码提交到npm的服务器&#xff0c;其他人想要使用这些代码&am…

适用于 Linux 和 Unix 的特权访问管理

凭据、SSH 密钥、服务帐户、数字签名、文件系统等内容构成了Linux 环境的关键部分&#xff0c;虽然大多数PAM供应商为基于Windows的环境提供无缝的特权访问管理&#xff0c;但它们的通用性不足以为Linux&#xff0c;Unix和*nix环境扩展相同的功能和功能。 Linux 中的root权限是…

微信小程序获取用户信息

个人博客 微信小程序获取用户信息 个人微信公众号&#xff0c;求关注&#xff0c;求收藏&#xff0c;求指错。 文章概叙 本文主要讲的是小程序获取用户信息的&#xff0c;更新测试时间是2023-10-25 更改原因 首先&#xff0c;官网上的解释是这样的&#xff0c;为了安全合…

探索学习新时代,江苏开放大学与电大搜题带您飞!

江苏开放大学&#xff08;广播电视大学&#xff09;一直以来致力于为广大学生提供高质量的教育资源和培训机会。作为一所面向社会、注重实际应用的学校&#xff0c;江苏开放大学不仅以其卓越的教学质量而闻名&#xff0c;同时也秉持着与时俱进、创新发展的理念。从近年来的发展…

PAM从入门到精通(二十六)

接前一篇文章&#xff1a;PAM从入门到精通&#xff08;二十五&#xff09; 本文参考&#xff1a; 《The Linux-PAM Application Developers Guide》 先再来重温一下PAM系统架构&#xff1a; 更加形象的形式&#xff1a; 七、PAM-API各函数源码详解 前边的文章讲解了各PAM-API…

Go源码实现使用多线程并发下载大文件的功能

摘要&#xff1a;Go语言编码实现了使用多线程并发下载文件的功能。 1. 代码流程介绍 1. 获取系统的CPU核心数量&#xff0c;并将其作为线程数的参考值&#xff0c;并打印出来。 2. 定义要下载的文件的URL、线程数和输出文件名。 3. 使用getFileSize()函数获取文件大小&#xf…

【AI视野·今日Robot 机器人论文速览 第五十七期】Wed, 18 Oct 2023

AI视野今日CS.Robotics 机器人学论文速览 Wed, 18 Oct 2023 Totally 17 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Robotics Papers Underwater and Surface Aquatic Locomotion of Soft Biomimetic Robot Based on Bending Rolled Dielectric Elastomer Actua…

使用ION-SFU和媒体设备在Golang中构建一个WebRTC视频和音频广播器

在本教程中&#xff0c;您将构建一个视频广播应用程序&#xff0c;该应用程序在 Golang 中读取摄像头并将其发送到 ION-SFU&#xff08;选择性转发单元&#xff09;&#xff0c;从而使 WebRTC 会话更有效地扩展。 WebRTC 是 Web Real-Time Communication 的缩写&#xff0c;是…

No module named ‘cv2’ 解决方法

目录 解决方案1解决方案2 解决方案1 一般情况下的解决方案 在自己的虚拟环境里面安装就行 pip install opencv-python解决方案2 但是我遇到的情况没有这么简单,我使用了pip list | grep open 搜索含有open字样的opencv的包,结果显示已经安装了 我直接进入我的自定义的虚拟…

亚马逊注册账号时老是显示内部错误

最近你们是否遇到注册亚马逊账号时一直遇到"内部错误"的情况&#xff1f;&#xff0c;这可能是由多种原因引起的。以下是一些可能有助于解决这个问题的步骤&#xff1a; 1、清除缓存和Cookie&#xff1a;有时浏览器缓存和Cookie中的问题可能导致网站错误。可以试试清…

selenium模拟登录无反应

在使用自动化工具selenium时对某些网站登录界面send_keys输入账号密码&#xff0c;运行时却没有自己想要的结果出现&#xff0c;这是因为你碰到前端二般的开发人员&#xff0c;他们用的是HTML嵌套&#xff0c;这对后端人员造成了一些麻烦&#xff0c;废话不多说&#xff0c;直接…

5G vs 4G

5G与4G的关键性能指标对比 指标名称流量密度连接密度空口时延移动性能效指标用户体验速率频谱效率峰值速率4G 参考值0.1 M b i t / s / m 2 Mbit/s/m^2 Mbit/s/m2 1 ∗ 1 0 5 / k m 2 1*10^5/km^2 1∗105/km210ms350km/h1倍10Mbit/s1倍1Gbit/s5G 参考值10 M b i t / s / m 2 M…

Go并发:使用sync.Pool来性能优化

简介 在Go提供如何实现对象的缓存池功能&#xff1f;常用一种实现方式是&#xff1a;sync.Pool, 其旨在缓存已分配但未使用的项目以供以后重用&#xff0c;从而减轻垃圾收集器&#xff08;GC&#xff09;的压力。 快速使用 sync.Pool的结构也比较简单&#xff0c;常用的方法…

如何在Ubuntu下安装RabbitMQ服务并异地远程访问?

文章目录 前言1.安装erlang 语言2.安装rabbitMQ3. 内网穿透3.1 安装cpolar内网穿透(支持一键自动安装脚本)3.2 创建HTTP隧道 4. 公网远程连接5.固定公网TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址 前言 RabbitMQ是一个在 AMQP(高级消息队列协议)基…