给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1。
1 | func nextGreaterElements(nums []int) []int { |
给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。
1 | /** |
编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性:
1 | func searchMatrix(matrix [][]int, target int) bool { |
在显示着数字的坏计算器上,我们可以执行以下两种操作:
1 | func brokenCalc(X int, Y int) int { |
给你一个字符串 s
,找出它的所有子串并按字典序排列,返回排在最后的那个子串。
1 | func lastSubstring(s string) string { |
给你链表的头结点 head
,请将其按 升序 排列并返回 排序后的链表 。
1 | /** |
编写程序以 x 为基准分割链表,使得所有小于 x 的节点排在大于或等于 x 的节点之前。如果链表中包含 x,x 只需出现在小于 x 的元素之后(如下所示)。分割元素 x 只需处于“右半部分”即可,其不需要被置于左右两部分之间。
1 | /** |
给你一个整数数组 arr
和一个整数 k
。现需要从数组中恰好移除 k
个元素,请找出移除后数组中不同整数的最少数目。
1 | func findLeastNumOfUniqueInts(arr []int, k int) int { |