假设我们有两个数字 num 和 k,我们必须找到 num 中 k 个连续数字的最大乘积。我们必须记住 num 保证具有 >= k 位数字。因此,如果输入类似于 num = 52689762 且 k = 4,则输出将为 3024,4 个连续数字的最大乘积为 (8*9*7*6) = 3024。要解决此问题,我们将遵循以下步骤:largest := 0 cand := 1 while (num/10)^(k-1) > 0, do digits := (num 的最后一位数字)^k cand := 1 while digits > 0, do cand := cand * (digits mod 10) if cand ... 阅读更多
假设我们有一个二维二进制矩阵,表示一个矩形棋盘,这里 0 表示空单元格,1 表示骑士。骑士能够水平移动两个方格,垂直移动一个方格,或者垂直移动两个方格,水平移动一个方格(像棋盘上的骑士一样)。我们必须检查是否有两个骑士互相攻击。因此,如果输入类似于 000000100000010 则输出将为 True 要解决此问题,我们将遵循以下步骤:row,col := 矩阵的行数,列数 for r in range 0 到 row-1,do for c ... 阅读更多
假设我们有一组名为 nums 的数字,我们必须找到最大的数字 k,其中 k 和 -k 都存在于 nums 中(它们可以是相同的数字)。如果没有这样的元素,则返回 -1。因此,如果输入类似于 [-5, 2, 9, -6, 5, -9],则输出将为 9。要解决此问题,我们将遵循以下步骤:L1:= nums 中 0 和正元素的列表 L2:= nums 中 0 和负元素的列表 按降序排列 L1 排序列表 L2 for each i in L1,do for each j in L2,do if i+j is ... 阅读更多