揭阳网站制作教程,电商平台运营是做什么,河北手机网站制作价格,网站建设与管理综合实践1、不同路径#xff08;数学#xff0c;动态规划#xff09;
一个机器人位于一个 m x n 网格的左上角 #xff08;起始点在下图中标记为 “Start” #xff09;。
机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角#xff08;在下图中标记为 “Finish”…1、不同路径数学动态规划
一个机器人位于一个 m x n 网格的左上角 起始点在下图中标记为 “Start” 。
机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角在下图中标记为 “Finish” 。
问总共有多少条不同的路径 示例 1 输入m 3, n 7输出28
示例 2
输入m 3, n 2输出3解释从左上角开始总共有 3 条路径可以到达右下角。1. 向右 - 向下 - 向下2. 向下 - 向下 - 向右3. 向下 - 向右 - 向下
示例 3
输入m 7, n 3输出28
示例 4
输入m 3, n 3输出6 提示
1 m, n 100题目数据保证答案小于等于 2 * 109
选项代码
class Solution:def uniquePaths(self, m, n)::type m: int:type n: int:rtype: intdmap [[0] * n for _ in range(m)]for i in range(m):dmap[i][0] 1for j in range(n):dmap[0][j] 1for i in range(1, m):for j in range(1, n):l u 0if i-1 0:u dmap[i-1][j]if j-1 0:l dmap[i][j-1]dmap[i][j] l ureturn dmap[m-1][n-1]
# %%
s Solution()
print(s.uniquePaths(m 3, n 7))
2、求两个给定正整数的最大公约数和最小公倍数图算法算法高阶
贡献者Rae。
本题要求两个给定正整数的最大公约数和最小公倍数。
输入格式:
输入在两行中分别输入正整数x和y。
输出格式:
在一行中输出最大公约数和最小公倍数的值。
输入样例1:在这里给出一组输入。例如
100
1520
输出样例1:
在这里给出相应的输出。
例如
20 7600
以下程序实现了这一功能请你填补空白处内容
def hcf(x, y):if x y:smaller yelse:smaller x for i in range(1,smaller 1):if((x % i 0) and (y % i 0)):hcf i return hcf
def lcm(x, y): if x y:greater xelse:greater ywhile(True):____________________;greater 1return lcm
num1 int(input(输入第一个数字: ))
num2 int(input(输入第二个数字: ))
print(最大公约数为,hcf(num1, num2),最小公倍数为,lcm(num1,num2))
选项代码缩进有修改
def hcf(x, y):if x y:smaller yelse:smaller xfor i in range(1,smaller 1):if((x % i 0) and (y % i 0)):hcf ireturn hcf
def lcm(x, y): if x y:greater xelse:greater ywhile(True):if ((greater % x 0) and (greater % y 0)):lcm greaterbreakgreater 1return lcm
num1 int(input(输入第一个数字: ))
num2 int(input(输入第二个数字: ))
print(最大公约数为,hcf(num1, num2),最小公倍数为,lcm(num1,num2))
3、删除有序数组中的重复项数组双指针
给你一个有序数组 nums 请你 原地 删除重复出现的元素使每个元素 只出现一次 返回删除后数组的新长度。
不要使用额外的数组空间你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 说明:
为什么返回数值是整数但输出的答案是数组呢?
请注意输入数组是以「引用」方式传递的这意味着在函数里修改输入数组对于调用者是可见的。
你可以想象内部操作如下:
// nums 是以“引用”方式传递的。也就是说不对实参做任何拷贝
int len removeDuplicates(nums);
// 在函数里修改输入数组对于调用者是可见的。
// 根据你的函数返回的长度, 它会打印出数组中 该长度范围内 的所有元素。
for (int i 0; i len; i) { print(nums[i]);
}
示例 1
输入nums [1,1,2]输出2, nums [1,2]解释函数应该返回新的长度 2 并且原数组 nums 的前两个元素被修改为 1, 2 。不需要考虑数组中超出新长度后面的元素。
示例 2
输入nums [0,0,1,1,1,2,2,3,3,4]输出5, nums [0,1,2,3,4]解释函数应该返回新的长度 5 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4 。不需要考虑数组中超出新长度后面的元素。提示
0 nums.length 3 * 104-104 nums[i] 104nums 已按升序排列
选项代码
class Solution(object):def removeDuplicates(self, nums):if len(nums) 0:return 0left 0for i in range(1, len(nums)):if nums[left] nums[i]:continueelse:left 1nums[left] nums[i]return left 1
# %%
s Solution()
print(s.removeDuplicates(nums [0,0,1,1,1,2,2,3,3,4]))