做鼻翼整形整形的网站/新开店铺怎么做推广

做鼻翼整形整形的网站,新开店铺怎么做推广,网站设计公司网站设计公司,个人网站建设网站组合I class Solution {List<List<Integer>> result new ArrayList(); // 所有结果集List<Integer> list new ArrayList(); // 当前结果集public List<List<Integer>> combine(int n, int k) {dfs(n, k, 1);return result;}public void dfs(i…

组合I 

class Solution {List<List<Integer>> result = new ArrayList(); // 所有结果集List<Integer> list = new ArrayList(); // 当前结果集public List<List<Integer>> combine(int n, int k) {dfs(n, k, 1);return result;}public void dfs(int n, int k, int index) {if (list.size() == k) { // 当前结果集等于要收集的数量即可存入最终结果集List<Integer> tem = new ArrayList(list);result.add(tem);return;}for (int i = index; i <= n; i++) {list.add(i); // 元素加入当前结果集dfs(n, k, i + 1); // 递归list.remove(list.size() - 1); // 该元素组合完成可以移除(回溯)}}
}

组合II 

class Solution {List<List<Integer>> result = new ArrayList(); // 所有结果集Set<List<Integer>> set = new HashSet(); // 结果集去重List<Integer> list = new ArrayList(); // 当前结果集public List<List<Integer>> combinationSum2(int[] candidates, int target) {backTring(candidates, 0, target, 0);return result;}public void backTring(int[] candidates, int sum, int target, int index) {if (candidates == null || candidates.length < 0) return; if (sum == target) { // 总和等于目标值是返回当前结果集List<Integer> tem = new ArrayList(list);Collections.sort(tem); // 去重(如:1 1 2 和 2 1 1 是一组结果集)if (!set.contains(tem)) { result.add(new ArrayList(list));set.add(tem);}return;}if (sum > target) { // 当前结果集大于目标值说明当前结果集不对return;}for (int i = index; i < candidates.length; i++) {sum += candidates[i]; // 当前总和list.add(candidates[i]); // 当前结果集backTring(candidates, sum, target, i + 1);sum -= candidates[i]; // 回溯总和list.remove(list.size() - 1); // 回溯结果集}}
}

 组合III

class Solution {List<List<Integer>> result = new ArrayList(); // 最终结果集List<Integer> list = new ArrayList(); // 当前结果集public List<List<Integer>> combinationSum3(int k, int n) {backCheck(k, n, 1, 0, 0);return result;}public void backCheck(int k, int n, int num, int count, int sum) {if (count == k && n == sum) { // 元素数量等于k 且 sum等于 n 时为符合的结果集result.add(new ArrayList(list));return;}if (count > k || n < sum) { // 要求的数量或者总和不对则返回return;}for (int i = num; i <= 9; i++) {list.add(i);sum += i;count++;backCheck(k, n, i + 1, count, sum);list.remove(list.size() - 1);sum -= i;count--;}}
}

 分割回文串

class Solution {List<List<String>> result = new ArrayList(); // 最终结果集List<String> list = new ArrayList(); // 当前结果集public String[][] partition(String s) {int n = s.length();dfs(0, n, s);return listToArrays(result); // 集合转换为数组}public void dfs(int index, int n, String s) {if (index == n) { // 指针指向n时说明遍历到字符串末尾,可以返回结果集result.add(new ArrayList(list));return;}for (int i = index; i < n; i++) {if (isPalindrome(s.substring(index, i + 1))) {  // 如果是回文串则加入当前结果集         list.add(s.substring(index, i + 1)); // 加入结果集dfs(i + 1, n, s);list.remove(list.size() - 1); // 回溯}}}public boolean isPalindrome(String str) { // 判断是否为回文串int l = 0;int r = str.length() - 1;while (l < r) {if (str.charAt(l) != str.charAt(r)) {return false;}l++;r--;}return true;}public String[][] listToArrays (List<List<String>> list) { // 集合转换为数组int n = list.size();String[][] arrs = new String[n][];for (int i = 0; i < n; i++) {List<String> tem = list.get(i);String[] arr = tem.toArray(new String[tem.size()]);arrs[i] = arr;}return arrs;}
}

复原 IP 地址

class Solution {List<String> res = new ArrayList(); // 所有结果集List<String> tem = new ArrayList(); // 当前结果集public List<String> restoreIpAddresses(String s) {int n = s.length(); // 字符串长度if (n < 0 || n > 12) return res; // 剪枝dfs(s, 0, n);return res;}public void dfs(String s, int index, int n) {if (tem.size() == 4) { // ip地址为四个数字组成,当前结果集等于4即可返回if (index == n) { // 当前指针指向末尾即可加入最终结果集StringBuilder sb = new StringBuilder(); // 拼凑成需要的字符串for (int i = 0; i < 4; i++) {sb.append(tem.get(i));if (i != 3) {sb.append(".");}}res.add(sb.toString()); // 加入到最终结果集}return;}for (int i = index; i < n && i < index + 3; i++) { // 当前指针if (isNum(s.substring(index, i + 1))) { //tem.add(s.substring(index, i + 1));dfs(s, i + 1, n);tem.remove(tem.size() - 1);}}}public boolean isNum(String s) { // 判断是否为合法数字if (s.length() >= 2 && s.charAt(0) == '0') return false;Integer num = Integer.valueOf(s);if (num > 255) return false;return true;}
}

子集I

class Solution {List<List<Integer>> res = new ArrayList();List<Integer> tem = new ArrayList();public List<List<Integer>> subsets(int[] nums) {dfs(nums, 0, nums.length);return res;}public void dfs(int[] nums, int index, int n) {res.add(new ArrayList(tem)); // 每次递归都是一个新子集for (int i = index; i < n; i++) {tem.add(nums[i]);dfs(nums, i + 1, n);tem.remove(tem.size() - 1);}}
}

 子集II

class Solution {List<List<Integer>> res = new ArrayList(); // 所有结果集List<Integer> list = new ArrayList(); // 当前子集Set<List<Integer>> set = new HashSet();  // 子集去重public List<List<Integer>> subsetsWithDup(int[] nums) {Arrays.sort(nums); // 排序dfs(nums, 0, nums.length);return res;}public void dfs(int[] nums, int index, int n) {res.add(new ArrayList(list)); // 每次递归都是新子集for (int i = index; i < n; i++) {if (i != index && nums[i] == nums[i - 1]) continue; // 数组已经排序,如果当前元素等于上一个元素进行递归会有重复子集(如:数组 {1 1} 的子集为 {1} {1 1},如果索引到第二个元素再进行递归则会有重复子集{1}list.add(nums[i]); dfs(nums, i + 1, n);list.remove(list.size() - 1);}}
}

 最长递增子序列

 

class Solution {public int lengthOfLIS(int[] nums) {int[] dp = new int[nums.length]; // 动态规划+暴力枚举Arrays.fill(dp, 1); // 每个子序列起始都是1int max = dp[0];for (int i = 1; i < nums.length; i++) {for (int j = 0; j < i; j++) { // 判断当前位置最长子序列是多少if (nums[j] < nums[i]) {dp[i] = Math.max(dp[i], dp[j] + 1);}}max = max > dp[i] ? max : dp[i];}return max;}
}

全排列I

class Solution {List<List<Integer>> res = new ArrayList(); // 所有结果集List<Integer> list = new ArrayList(); // 当前结果集public List<List<Integer>> permute(int[] nums) {boolean[] used = new boolean[nums.length]; // 判断当前元素是否加入结果集dfs(nums, used);return res;}public void dfs(int[] nums, boolean[] used) {if (list.size() == nums.length) { // 当前结果集长度等于数组长度即可加入所有结果集res.add(new ArrayList(list));}for (int i = 0; i < nums.length; i++) {if (used[i] == false) { // 判断元素是否加入当前结果集list.add(nums[i]); // 元素入集合used[i] = true; // 设置元素状态为被使用dfs(nums, used);used[i] = false; // 回溯list.remove(list.size() - 1);}}}
}

 全排列II

class Solution {List<List<Integer>> res = new ArrayList(); // 所有结果集合List<Integer> list = new ArrayList(); // 当前结果集合Set<List<Integer>> set = new HashSet(); // 结果集去重public List<List<Integer>> permuteUnique(int[] nums) {boolean[] flag = new boolean[nums.length]; // 判断元素是否加入当前结果集dfs(nums, flag);return res;}public void dfs(int[] nums, boolean[] flag) {if (list.size() == nums.length) { // 当前结果集合等于数组长度即可加入最终结果集List<Integer> tem = new ArrayList(list);if (!set.contains(tem)) { // 判断该结果集是否在最终结果集中存在set.add(tem); // 该结果集的顺序存入去重集合中,避免重复加入最终结果集res.add(tem);}}for (int i = 0; i < nums.length; i++) {if (flag[i] == false) {list.add(nums[i]);flag[i] = true;dfs(nums, flag);flag[i] = false;list.remove(list.size() - 1);}}}
}

 N皇后

class Solution {List<List<String>> res = new ArrayList(); // 最终结果集合List<String> list = new ArrayList(); // public List<List<String>> solveNQueens(int n) {char[][] board = new char[n][n]; // 创建棋盘并初始化for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {board[i][j] = '.';}}dfs(board, n, 0);return res;}public void dfs(char[][] board, int n, int row) {if (row == n) { // 当第row行也可以放棋子说明该方法合法res.add(printResult(board, n));return;}for (int col = 0; col < n; col++) {// 判断该位置是否可以填棋if (isFlag(board, row, col)) {board[row][col] = 'Q';dfs(board, n, row + 1);board[row][col] = '.';}}}// 核心方法判断棋子放置位置是否合法public boolean isFlag(char[][] board, int row, int col) { // 判断该位置放棋子是否合法int n = board.length;for (int i = 0; i < n; i++) { // 同一列不能有皇后if (board[i][col] == 'Q') return false;}for (int i = row - 1, j = col + 1; i >= 0 && j < n; i--, j++) { // 右斜线不能有皇后if (board[i][j] == 'Q') return false;}for (int i = row - 1, j = col - 1; i >= 0 && j >= 0; i--, j--) { // 左斜线不能有皇后if (board[i][j] == 'Q') return false;}return true; // 合法}public List<String> printResult(char[][] board, int n) { // 按照题目要求打印结果集List<String> list = new ArrayList();for (int i = 0; i < n; i++) {StringBuilder sb = new StringBuilder();for (int j = 0; j < n; j++) {sb.append(board[i][j]);}list.add(sb.toString());}return list;}
}

 解数独

class Solution {public void solveSudoku(char[][] board) {dfs(board);}public boolean dfs(char[][] board) {for (int i = 0; i < 9; i++) {for (int j = 0; j < 9; j++) {if (board[i][j] == '.') {// 填充数字for (char c = '1'; c <= '9'; c++) {if (isFlag(board, i, j, c)) {board[i][j] = c; // 暂时填充该数字if (dfs(board)) return true;board[i][j] = '.'; // 递归到后面不合法,回溯}}return false;}}}return true;}// 核心方法,判断该位置的数字是否合法public boolean isFlag(char[][] board, int row, int col, char c) { // 判断该数字是否重复for (int i = 0; i < 9; i++) {// 同行出现过if (board[i][col] == c) return false; // 同列出现过if (board[row][i] == c) return false; // 九宫格出现过if (board[(row / 3) * 3 + i / 3][(col / 3) * 3 + i % 3] == c) return false;}return true;}
}

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

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

相关文章

23种设计模式-原型(Prototype)设计模式

原型设计模式 &#x1f6a9;什么是原型设计模式&#xff1f;&#x1f6a9;原型设计模式的特点&#x1f6a9;原型设计模式的结构&#x1f6a9;原型设计模式的优缺点&#x1f6a9;原型设计模式的Java实现&#x1f6a9;代码总结&#x1f6a9;总结 &#x1f6a9;什么是原型设计模式…

解决vscode终端和本地终端python版本不一致的问题

&#x1f33f; 问题描述 本地终端&#xff1a; vscode终端&#xff1a; 别被这个给骗了&#xff0c;继续往下看&#xff1a; 难怪我导入一些包的时候老提示找不到&#xff0c;在本地终端就不会这样&#xff0c;于是我严重怀疑vscode中的python版本和终端不一样&#xff0c…

Sublime全局搜索快捷键Ctrl+Shift+F不能使用解决

问题描述&#xff1a; 在安装好Sublime后&#xff0c;我们使用快捷键进行全局搜索&#xff0c;发现没有反应&#xff0c;但是中文输入变成了繁体。 解决方案&#xff1a; 如截图&#xff0c;在关闭简繁切换的快捷键或者换成其他的就行

海康HTTP监听报警事件数据

http监听接收报警事件数据 海康获取设备报警事件数据两种方式&#xff1a; 1、sdk 布防监听报警事件数据,服务端布防。&#xff08;前面文章有示例&#xff09; 2、http监听接收报警事件数据&#xff0c;设备直接推送。 http监听接收报警事件数据&#xff0c;服务端可以使用n…

Python----计算机视觉处理(Opencv:图像边缘检测:非极大值抑制,双阈值筛选)

一、 高斯滤波 边缘检测本身属于锐化操作&#xff0c;对噪点比较敏感&#xff0c;所以需要进行平滑处理。这里使用的是一个5*5的高斯 核对图像进行消除噪声。 二、计算图像的梯度和方向 三、非极大值抑制 在得到每个边缘的方向之后&#xff0c;其实把它们连起来边缘检测就算完了…

docker远程debug

1. 修改 Java 启动命令 在 Docker 容器中启动 Java 程序时&#xff0c;需要添加 JVM 调试参数&#xff0c;jdk8以上版本 java -agentlib:jdwptransportdt_socket,servery,suspendn,address*:5005 -jar your-app.jar jdk8及以下版本&#xff1a; java -Xdebug -Xrunjdwp:tra…

K8S学习之基础五十四:jenkins新建测试流水线

jenkins新建测试流水线 新建任务 node(testak) {stage(第1步:从gitee上下载源代码) {git url: "https://gitee.com/akang007/jenkins-sample"script {build_tag sh(returnStdout: true, script: git rev-parse --short HEAD).trim()}}stage(第2步&#xff1a;基…

SylixOS 中 select 原理及使用分析

1、select接口简介 1.1 select接口使用用例 select 是操作系统多路 I/O 复用技术实现的方式之一。 select 函数允许程序监视多个文件描述符&#xff0c;等待所监视的一个或者多个文件描述符变为“准备好”的状态。所谓的”准备好“状态是指&#xff1a;文件描述符不再是阻塞状…

C++智能指针万字详细讲解(包含智能指针的模拟实现)

在笔试&#xff0c;面试中智能指针经常出现&#xff0c;如果你对智能指针的作用&#xff0c;原理&#xff0c;用法不了解&#xff0c;那么可以看看这篇博客讲解&#xff0c;此外本博客还简单模拟实现了各种指针&#xff0c;在本篇的最后还应对面试题对智能指针的知识点进行了拓…

Three.js 快速入门教程【十八】射线拾取模型——鼠标点击屏幕选中模型或物体

系列文章目录 Three.js 快速入门教程【一】开启你的 3D Web 开发之旅 Three.js 快速入门教程【二】透视投影相机 Three.js 快速入门教程【三】渲染器 Three.js 快速入门教程【四】三维坐标系 Three.js 快速入门教程【五】动画渲染循环 Three.js 快速入门教程【六】相机控件 Or…

探索抓包利器ProxyPin,实现手机APP请求抓包,支持https请求

以下是ProxyPin的简单介绍&#xff1a; - ProxyPin是一个开源免费HTTP(S)流量捕获神器&#xff0c;支持 Windows、Mac、Android、IOS、Linux 全平台系统- 可以使用它来拦截、检查并重写HTTP(S)流量&#xff0c;支持捕获各种应用的网络请求。ProxyPin基于Flutter开发&#xff0…

深入浅出Spring-Boot-3.x.pdf

通过网盘分享的文件&#xff1a;深入浅出Spring-Boot-3.x.pdf 链接: https://pan.baidu.com/s/10ZkhmeIXphEwND9Rv4EBlg?pwduatm 提取码: uatm

springboot启动事件CommandLineRunner使用

什么是CommandRunner CommandRunner是springboot启动完成时会调用的一个runner 启动参数会传递到这个runner 我们能用来做一些初始化工作和缓存预热等工作 ApplicationRunner VS CommandRunner? 这两个Runner作用一样 只是得到的启动参数格式不一样 前者是一个Argument对象…

数据可视化TensorboardX和tensorBoard安装及使用

tensorBoard 和TensorboardX 安装及使用指南 tensorBoard 和 TensorBoardX 是用于可视化机器学习实验和模型训练过程的工具。TensorBoard 是 TensorFlow 官方提供的可视化工具&#xff0c;而 TensorBoardX 是其社区驱动的替代品&#xff0c;支持 PyTorch 等其他框架。以下是它…

26考研——树与二叉树_树与二叉树的应用(5)

408答疑 文章目录 三、树与二叉树的应用哈夫曼树和哈夫曼编码哈夫曼树的定义概念带权路径长度&#xff08;WPL&#xff09;计算示例分析 哈夫曼树的构造算法描述哈夫曼树的性质示例 哈夫曼编码Huffman树的编码规则Huffman树的构建过程前缀编码前缀编码的分析及应用 Huffman树的…

【VUE】day06 动态组件 插槽 自定义指令 ESlint

【VUE】day06 动态组件 & 插槽 & 自定义指令 1. 动态组件1.1 通过不同的按钮展示不同的组件1.1.1回顾click 1.2 keep-alive的使用1.3 keep-alive对应的生命周期函数1.3.1 keep-alive的include属性1.3.2 exclude 1.4 组件注册名称和组件声明时name的区别1.4.1 组件声明时…

nodejs-原型污染链

还是老规矩&#xff0c;边写边学&#xff0c;先分享两篇文章 深入理解 JavaScript Prototype 污染攻击 | 离别歌 《JavaScript百炼成仙》 全书知识点整理-CSDN博客 Ctfshow web入门 nodejs篇 web334-web344_web334 ctfshow-CSDN博客 334-js审计 var express require(expr…

26考研——图_图的代码实操(6)

408答疑 文章目录 五、图的代码实操图的存储邻接矩阵结构定义初始化插入顶点获取顶点位置在顶点 v1 和 v2 之间插入边获取第一个邻接顶点获取下一个邻接顶点显示图 邻接表结构定义初始化图插入顶点获取顶点位置在顶点 v1 和 v2 之间插入边获取第一个邻接顶点获取下一个邻接顶点…

开源webmail邮箱客户端rainloop的分支版本SnappyMail 设置发件人允许多重身份

RainLoop已多年未更新&#xff0c;SnappyMail 是 RainLoop 的分支&#xff0c;由社区维护。SnappyMail 不仅修复了漏洞&#xff0c;还增加了更多功能和优化。对 IMAP 支持更好&#xff0c;移动端体验也比 RainLoop 更细致。 安装过程和设置跟RainLoop一样&#xff1a; 以宝塔面…

海量数据场景题--查找两个大文件的URL

查找两个大文件共同的URL 给定 a、b 两个文件&#xff0c;各存放 50 亿个 URL&#xff0c;每个 URL 各占 64B&#xff0c;找出 a、b 两个文件共同的 URL。内存限制是 4G。 操作逻辑&#xff1a; 使用哈希函数 hash(URL) % 1000​ 将每个URL映射到0-999的编号 文件A切割为a0, a1…