2717_半有序排列

力扣链接:2717. 半有序排列 力扣难度 简单 算法评级: 3 理解常用数据结构和算法 难度分 1296 题目: 给你一个下标从 0 开始、长度为 n 的整数排列 nums 。 如果排列的第一个数字等于 1 且最后一个数字等于 n,则称其为 半有序排列 。你可以执行多次下述操作,直到将 nums 变成一个 半有序排列 : 示例 1: 输入:nums = [2,1,4,3] 输出:2 解释:可以依次执行下述操作得到半有序排列: 1 - 交换下标 0 和下标 1 对应元素。排列变为 [1,2,4,3] 。 2 - 交换下标 2 和下标 3 对应元素。排列变为 [1,2,3,4] 。 可以证明,要让 nums 成为半有序排列,不存在执行操作少于 2 次的方案。 示例 2: 输入:nums = [2,4,1,3] 输出:3 解释: 可以依次执行下述操作得到半有序排列: 1 - 交换下标 1 和下标 2 对应元素。排列变为 [2,1,4,3] 。 2 - 交换下标 0 和下标 1 对应元素。排列变为 [1,2,4,3] 。 3 - 交换下标 2 和下标 3 对应元素。排列变为 [1,2,3,4] 。 可以证明,要让 nums 成为半有序排列,不存在执行操作少于 3 次的方案。 ...

十二月 11, 2024

70.爬楼梯

力扣链接:70.爬楼梯 力扣难度 简单 算法评级: 2 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 示例 1: 输入:n = 2 输出:2 解释:有两种方法可以爬到楼顶。 1 阶 + 1 阶 2 阶 示例 2: 输入:n = 3 输出:3 解释:有三种方法可以爬到楼顶。 1 阶 + 1 阶 + 1 阶 1 阶 + 2 阶 2 阶 + 1 阶 func climbStairs(n int) int { } 🔑 答案解析: 👈点击

十二月 11, 2024

935_骑士拨号器

力扣链接:935. 骑士拨号器 力扣难度 中等 算法评级: 5 熟练掌握常用数据结构和算法,初步了解高级数据结构 难度分 1690 题目: 象棋骑士有一个独特的移动方式,它可以垂直移动两个方格,水平移动一个方格,或者水平移动两个方格,垂直移动一个方格(两者都形成一个 L 的形状)。 象棋骑士可能的移动方式如下图所示: 我们有一个象棋骑士和一个电话垫,如下所示,骑士只能站在一个数字单元格上(即蓝色单元格)。 给定一个整数 n,返回我们可以拨多少个长度为 n 的不同电话号码。 你可以将骑士放置在任何数字单元格上,然后你应该执行 n - 1 次移动来获得长度为 n 的号码。所有的跳跃应该是有效的骑士跳跃。 因为答案可能很大,所以输出答案模 109 + 7. 示例 1: 输入:n = 1 输出:10 解释:我们需要拨一个长度为1的数字,所以把骑士放在10个单元格中的任何一个数字单元格上都能满足条件。 示例 2: 输入:n = 2 输出:20 解释:我们可以拨打的所有有效号码为[04, 06, 16, 18, 27, 29, 34, 38, 40, 43, 49, 60, 61, 67, 72, 76, 81, 83, 92, 94] 示例 3: 输入:n = 3131 输出:136006598 解释:注意取模 ...

十二月 10, 2024

1812_判断国际象棋棋盘中一个格子的颜色

力扣链接:1812. 判断国际象棋棋盘中一个格子的颜色 力扣难度 简单 题目: 给你一个坐标 coordinates ,它是一个字符串,表示国际象棋棋盘中一个格子的坐标。下图是国际象棋棋盘示意图。 如果所给格子的颜色是白色,请你返回 true,如果是黑色,请返回 false 。 给定坐标一定代表国际象棋棋盘上一个存在的格子。坐标第一个字符是字母,第二个字符是数字。 示例 1: 输入:coordinates = “a1” 输出:false 解释:如上图棋盘所示,“a1” 坐标的格子是黑色的,所以返回 false 。 示例 2: 输入:coordinates = “h3” 输出:true 解释:如上图棋盘所示,“h3” 坐标的格子是白色的,所以返回 true 。 示例 3: 输入:coordinates = “c7” 输出:false func squareIsWhite(coordinates string) bool { } 🔑 答案解析: 👈点击 func squareIsWhite(coordinates string) bool { return coordinates[0]%2 != coordinates[1]%2 }

十二月 9, 2024

688_骑士在棋盘上的概率

力扣链接:688. 骑士在棋盘上的概率 力扣难度 中等 题目: 在一个 n x n 的国际象棋棋盘上,一个骑士从单元格 (row, column) 开始,并尝试进行 k 次移动。行和列是 从 0 开始 的,所以左上单元格是 (0,0) ,右下单元格是 (n - 1, n - 1) 。 象棋骑士有8种可能的走法,如下图所示。每次移动在基本方向上是两个单元格,然后在正交方向上是一个单元格 每次骑士要移动时,它都会随机从8种可能的移动中选择一种(即使棋子会离开棋盘),然后移动到那里。 骑士继续移动,直到它走了 k 步或离开了棋盘。 返回 骑士在棋盘停止移动后仍留在棋盘上的概率 。 示例 1: 输入: n = 3, k = 2, row = 0, column = 0 输出: 0.0625 解释: 有两步(到(1,2),(2,1))可以让骑士留在棋盘上。 在每一个位置上,也有两种移动可以让骑士留在棋盘上。 骑士留在棋盘上的总概率是0.0625。 示例 2: 输入: n = 1, k = 0, row = 0, column = 0 输出: 1.00000 ...

十二月 7, 2024