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

旅游网站开发的国内外现状wordpress 繁体转简

旅游网站开发的国内外现状,wordpress 繁体转简,用什么做网站原型图,做网站好的52. N 皇后 II#xff0c;53. 最大子数组和#xff0c;54. 螺旋矩阵#xff0c;每题做详细思路梳理#xff0c;配套PythonJava双语代码#xff0c; 2024.03.20 可通过leetcode所有测试用例。 目录 52. N 皇后 II 解题思路 完整代码 Python Java 53. 最大子数组…52. N 皇后 II53. 最大子数组和54. 螺旋矩阵每题做详细思路梳理配套PythonJava双语代码 2024.03.20 可通过leetcode所有测试用例。 目录 52. N 皇后 II 解题思路 完整代码 Python Java 53. 最大子数组和 解题思路 完整代码 Python Java 54. 螺旋矩阵 解题思路 完整代码 Python Java 52. N 皇后 II n 皇后问题 研究的是如何将 n 个皇后放置在 n × n 的棋盘上并且使皇后彼此之间不能相互攻击。 给你一个整数 n 返回 n 皇后问题 不同的解决方案的数量。 示例 1 输入n 4 输出2 解释如上图所示4 皇后问题存在两个不同的解法。示例 2 输入n 1 输出1提示 1 n 9 解题思路 可以使用回溯法类似于解决 n 皇后问题摆放方案的方法但这次我们只需要计算不同解决方案的数量。关键点在于合理地放置皇后以避免她们相互攻击。 初始化数据结构使用数组或其他数据结构来标记哪些列、对角线左上到右下和右上到左下已经被占用。 递归回溯从第一行开始尝试在每一列放置皇后。对于放置在 (row, col) 的皇后需要标记第 col 列、(row col) 的左上到右下对角线和 (row - col) 的右上到左下对角线为占用状态。 检查冲突在尝试放置每个皇后之前检查当前列和两个对角线是否已经被其他皇后占用。 统计解决方案数量每当成功放置了 n 个皇后即达到了最后一行的下一行就将解决方案数量加一。 回溯尝试当前行的下一列或回到上一行撤销当前放置的皇后并尝试新的位置。 完整代码 Python class Solution:def totalNQueens(self, n: int) - int:def backtrack(row 0, hills 0, next_row 0, dales 0, count 0):if row n: # 如果已经放置了 n 个皇后count 1 # 解决方案数量加一else:# 在所有可用的列中free_columns columns ~(hills | next_row | dales)while free_columns:# 选择最右侧的可用列curr_column - free_columns free_columns# 放置皇后并去掉当前列free_columns ^ curr_columncount backtrack(row 1, (hills | curr_column) 1, next_row | curr_column, (dales | curr_column) 1, count)return count# 初始化可用列columns (1 n) - 1return backtrack() Java public class Solution {private int size;private int count;private void solve(int row, int ld, int rd) {if (row size) {count;return;}int pos size ~(row | ld | rd);while (pos ! 0) {int p pos -pos;pos - p; // 放置皇后并移除当前位置solve(row | p, (ld | p) 1, (rd | p) 1);}}public int totalNQueens(int n) {count 0;size (1 n) - 1;solve(0, 0, 0);return count;}public static void main(String[] args) {Solution solution new Solution();int n 4;System.out.println(solution.totalNQueens(n));} }53. 最大子数组和 给你一个整数数组 nums 请你找出一个具有最大和的连续子数组子数组最少包含一个元素返回其最大和。 子数组 是数组中的一个连续部分。 示例 1 输入nums [-2,1,-3,4,-1,2,1,-5,4] 输出6 解释连续子数组 [4,-1,2,1] 的和最大为 6 。示例 2 输入nums [1] 输出1示例 3 输入nums [5,4,-1,7,8] 输出23 解题思路 我们可以使用一个称为“Kadane算法”的高效方法。Kadane算法通过一次遍历数组来找到最大的连续子数组和。该算法的基本思想是维护一个局部最大和一个全局最大变量随着数组的遍历更新这两个变量。 初始化两个变量currentMax 用于追踪当前位置的最大子数组和globalMax 用于记录迄今为止找到的最大子数组和。初始时两个变量都设置为数组的第一个元素。 遍历数组从数组的第二个元素开始遍历。 更新 currentMax对于每个元素更新 currentMax 为当前元素本身和当前元素加上之前的 currentMax 之间的较大者。这一步骤确保了 currentMax 总是维护着到当前位置为止的最大子数组和。 currentMax max(nums[i], currentMax nums[i]) 更新 globalMax如果更新后的 currentMax 大于 globalMax则更新 globalMax 为 currentMax 的值。这确保了 globalMax 总是全局最大子数组和。 globalMax max(globalMax, currentMax) 返回结果遍历完成后globalMax 将包含整个数组的最大子数组和。 完整代码 Python class Solution:def maxSubArray(self, nums: List[int]) - int:currentMax globalMax nums[0]for num in nums[1:]:currentMax max(num, currentMax num)globalMax max(globalMax, currentMax)return globalMax Java public class Solution {public int maxSubArray(int[] nums) {int currentMax nums[0];int globalMax nums[0];for (int i 1; i nums.length; i) {currentMax Math.max(nums[i], currentMax nums[i]);globalMax Math.max(globalMax, currentMax);}return globalMax;}public static void main(String[] args) {Solution solution new Solution();int[] nums {-2, 1, -3, 4, -1, 2, 1, -5, 4};System.out.println(solution.maxSubArray(nums));} }54. 螺旋矩阵 给你一个 m 行 n 列的矩阵 matrix 请按照 顺时针螺旋顺序 返回矩阵中的所有元素。 示例 1 输入matrix [[1,2,3],[4,5,6],[7,8,9]] 输出[1,2,3,6,9,8,7,4,5]示例 2 输入matrix [[1,2,3,4],[5,6,7,8],[9,10,11,12]] 输出[1,2,3,4,8,12,11,10,9,5,6,7]提示 m matrix.lengthn matrix[i].length1 m, n 10-100 matrix[i][j] 100 解题思路 要按顺时针螺旋顺序返回矩阵中的所有元素我们可以模拟整个过程遵循从左到右、从上到下、从右到左、从下到上的顺序每完成一圈后缩小遍历的范围。 初始化四个方向的边界top、bottom、left、right 分别代表了上下左右四个方向的边界。初始化时top 0bottom m-1left 0right n-1。 按顺序遍历矩阵按照顺时针方向遍历矩阵的外围然后逐层向内缩小范围直到遍历完所有元素。具体步骤如下 a. 从左到右遍历上层元素top 行遍历完成后 top。 b. 从上到下遍历右侧元素right 列遍历完成后 right--。 c. 如果 top bottom从右到左遍历底层元素bottom 行遍历完成后 bottom--。 d. 如果 left right从下到上遍历左侧元素left 列遍历完成后 left。 收集元素在每个方向上遍历时将遍历到的元素添加到结果列表中。 返回结果当上述遍历完成后结果列表中将包含按顺时针螺旋顺序的所有矩阵元素。 完整代码 Python class Solution:def spiralOrder(self, matrix: List[List[int]]) - List[int]:result []if not matrix:return resulttop, bottom, left, right 0, len(matrix) - 1, 0, len(matrix[0]) - 1while left right and top bottom:# 从左到右for i in range(left, right 1):result.append(matrix[top][i])top 1# 从上到下for i in range(top, bottom 1):result.append(matrix[i][right])right - 1# 从右到左if top bottom:for i in range(right, left - 1, -1):result.append(matrix[bottom][i])bottom - 1# 从下到上if left right:for i in range(bottom, top - 1, -1):result.append(matrix[i][left])left 1return result Java public class Solution {public ListInteger spiralOrder(int[][] matrix) {ListInteger result new ArrayList();if (matrix null || matrix.length 0) return result;int top 0, bottom matrix.length - 1, left 0, right matrix[0].length - 1;while (left right top bottom) {// 从左到右for (int i left; i right; i) {result.add(matrix[top][i]);}top;// 从上到下for (int i top; i bottom; i) {result.add(matrix[i][right]);}right--;// 从右到左if (top bottom) {for (int i right; i left; i--) {result.add(matrix[bottom][i]);}bottom--;}// 从下到上if (left right) {for (int i bottom; i top; i--) {result.add(matrix[i][left]);}left;}}return result;}public static void main(String[] args) {Solution solution new Solution();int[][] matrix {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};System.out.println(solution.spiralOrder(matrix));} }
http://www.dnsts.com.cn/news/203128.html

相关文章:

  • php 资讯网站个人网站做的类型
  • 宁波seo推广推荐网站seo基本流程
  • 佛山国内快速建站做网站广告中敏感词会涉及到工商
  • asp网站后台管理系统密码破解防盗网站人做清洁
  • 海南工程建设资料备案网站龙岩网站设计培训
  • 青岛君哲网站建设公司怎么样wordpress 评论栏
  • 优秀集团网站设计百度推广是必须先做网站吗
  • 建设网站的公司专业服务免费开源代码网站
  • 建设部网站有建筑施工分包商标注册查询网址
  • 我公司要网站建设北京网站优化企业
  • 维护网站一年多少钱长沙网站推广平台
  • wordpress 多站点 拷贝微信公众号管理工具
  • 凡科建站模板最好用的wordpress主题
  • 手机网站html5凡科网怎么建网站
  • 北京手机网站建设费用接收外国电视卫星天线
  • 企业网站建设项目计划书成免费crm软件
  • 网站做百度排名教程网络推广计划方案
  • 博罗网站开发vi企业形象设计是什么
  • 西安seo网站推广优化网站开发配置
  • 装修网站建设优缺点sem分析是什么意思
  • 手机建网站教程中国做外贸网站
  • wap手机网站尺寸凡科免费网站建设
  • 网站 预算做网站换服务器怎么整
  • 吉安网站建设吉安番禺五屏网站建设
  • 哪些网站可以看一级a做爰片色系网站的
  • wordpress资源站模板爱站网功能
  • 建网站维护需要多少钱渝快办官网
  • 义乌市评建设职称网站做网站需要注意什么问题
  • php做网站有哪些优点网站开发设计内容
  • 北京搜索优化推广公司石家庄搜索引擎优化