掘友等级
获得徽章 15
#1024一起掘金# 抽奖抽奖!!!锦鲤附身!!!
#每日一题# 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。
例如,当输入5时,应该输出的三角形为:
1 3 6 10 15
2 5 9 14
4 8 13
7 12
11
输入描述:
输入正整数N(N不大于100)
输出描述:
输出一个N行的蛇形矩阵。
#每日一题# 请把俩个数组[A1,A2,B1,B2,C1,C2,D1, D2]和[A,B,C,D],合并为[A1,A2,A,B1,B2,B,C 1,C2,C,D1,D2,D]
#每日一题#
全排列
给定一个没有重复数字的序列,返回其所有可能的全排列。
输入例子:
[1,2,3]
输出例子:
[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]
答: 可以使用回溯算法来解决这个问题。回溯算法是一种通过穷举所有可能情况来找到所有解的算法。在这个问题中,我们可以从第一个位置开始,枚举所有可能的数字,然后递归地处理剩下的位置。具体来说,可以按照以下步骤进行:
定义一个数组res,用来存储所有的排列结果。
定义一个数组path,用来存储当前的排列结果。
定义一个数组used,用来记录哪些数字已经被使用过了。
编写一个递归函数backtrack,用来处理当前位置的数字。
在backtrack函数中,如果当前位置已经处理完了,将path数组加入到res数组中。
在backtrack函数中,枚举所有可能的数字,如果该数字没有被使用过,将其加入到path数组中,并将其标记为已使用。
在backtrack函数中,递归处理下一个位置。
在backtrack函数中,将当前数字从path数组中删除,并将其标记为未使用。
#每日一题# 问题描述: 给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排 列。 此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。
答:这道题目是经典的荷兰国旗问题,可以使用三路快排的思想来解决。具体来说,可以维护三个指针,分别指向当前已经排好序的红色区域的右边界、当前已经排好序的白色区域的右边界和当前已经排好序的蓝色区域的左边界,然后遍历整个数组,根据当前元素的颜色将其放入对应的区域中。
#每日一题# 如何实现数组的随机排序?
基本思路是从数组的最后一个元素开始,随机选择一个元素与其交换位置,然后再从剩下的元素中随机选择一个元素与倒数第二个元素交换位置,以此类推,直到第一个元素。这样可以保证每个元素被随机交换的概率相等,从而实现随机排序。
#前端开发现状# 微信小程序 map 全屏固定定位, 拖动覆盖在map 上的 view 会导致地图也拖动,怎么解啊?头发要掉光了
下一页