questionbank

package module
v0.0.0-...-ab9c876 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 27, 2025 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BinaryFindTarget

func BinaryFindTarget(nums []int, target int) int

BinaryFindTarget 给定一个长度为n的有序数组 nums ,其中可能包含重复元素。请返回数组中最左一个元素 target 的索引。若数组中不包含该元素,则返回-1.

func CoinsChange

func CoinsChange(coins []int, amount int) int

CoinsChange

给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。

计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。

你可以认为每种硬币的数量是无限的。

示例 1:

输入:coins = [1, 2, 5], amount = 11 输出:3 解释:11 = 5 + 5 + 1 示例 2:

输入:coins = [2], amount = 3 输出:-1 示例 3:

输入:coins = [1], amount = 0 输出:0

提示:

1 <= coins.length <= 12 1 <= coins[i] <= 231 - 1 0 <= amount <= 104

func FindDistanceK

func FindDistanceK(root *datastructure.TreeNode, target *datastructure.TreeNode, k int) []int

FindDistanceK godoc the random medium question number is 863 给定一个二叉树(具有根结点 root), 一个目标结点 target ,

和一个整数值 k ,返回到目标结点 target 距离为 k 的所有结点的值的数组。

答案可以以 任何顺序 返回。 输入:root = [3,5,1,6,2,0,8,null,null,7,4], target = 5, k = 2

输出:[7,4,1]

解释:所求结点为与目标结点(值为 5)距离为 2 的结点,值分别为 7,4,以及 1

func FindKLargestSums

func FindKLargestSums(A, B []int, k int) []int

func FindKSum

func FindKSum(a1, a2 []int, k int) []int

func FindMinCoveringSubStr

func FindMinCoveringSubStr(s, t string) string

FindMinCoveringSubStr

给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" 。

注意:

对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少于 t 中该字符数量。 如果 s 中存在这样的子串,我们保证它是唯一的答案。

func FindSubStr

func FindSubStr(s1, s2 string) bool

FindSubStr

给你两个字符串 s1 和 s2 ,写一个函数来判断 s2 是否包含 s1 的排列。如果是,返回 true ;否则,返回 false 。

换句话说,s1 的排列之一是 s2 的 子串 。

func HasCycle

func HasCycle(l *ListNode) bool

HasCycle

检查链表中是否存在环

func LongestPalindromeSubStr

func LongestPalindromeSubStr(str string) string

LongestPalindromeSubStr 找出最长的回文串

func MaxGoodNumber

func MaxGoodNumber(nums []int) int

MaxGoodNumber

给你一个长度为 3 的整数数组 nums。

现以某种顺序 连接 数组 nums 中所有元素的 二进制表示 ,请你返回可以由这种方法形成的 最大 数值。

注意 任何数字的二进制表示 不含 前导零。

示例 1:

输入: nums = [1,2,3]

输出: 30

解释:

按照顺序 [3, 1, 2] 连接数字的二进制表示,得到结果 "11110",这是 30 的二进制表示。

示例 2:

输入: nums = [2,8,16]

输出: 1296

解释:

按照顺序 [2, 8, 16] 连接数字的二进制表述,得到结果 "10100010000",这是 1296 的二进制表示。

提示:

nums.length == 3 1 <= nums[i] <= 127

注意:竞赛中,请勿复制题面内容,以免影响您的竞赛成绩真实性。

func MaxProfit

func MaxProfit(prices []int) int

MaxProfit 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。

你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。

返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。

示例 1:

输入:[7,1,5,3,6,4] 输出:5 解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。

示例 2:

输入:prices = [7,6,4,3,1] 输出:0 解释:在这种情况下, 没有交易完成, 所以最大利润为 0。

提示:

1 <= prices.length <= 105

0 <= prices[i] <= 104

func MaxProfit2

func MaxProfit2(prices []int) int

MaxProfit2 在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。

返回 你能获得的 最大 利润 。

示例 1:

输入:prices = [7,1,5,3,6,4] 输出:7 解释:在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4。 随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6 - 3 = 3。 最大总利润为 4 + 3 = 7 。 示例 2:

输入:prices = [1,2,3,4,5] 输出:4 解释:在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4。 最大总利润为 4 。

示例 3:

输入:prices = [7,6,4,3,1] 输出:0 解释:在这种情况下, 交易无法获得正利润,所以不参与交易可以获得最大利润,最大利润为 0。

提示:

1 <= prices.length <= 3 * 104

0 <= prices[i] <= 104

func MaxSumSubArray

func MaxSumSubArray(nums []int) int

MaxSumSubArray godoc 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

子数组 是数组中的一个连续部分。

示例 1:

输入:nums = [-2,1,-3,4,-1,2,1,-5,4] 输出:6 解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。 示例 2:

输入:nums = [1] 输出:1 示例 3:

输入:nums = [5,4,-1,7,8] 输出:23

提示:

1 <= nums.length <= 105 -104 <= nums[i] <= 104

进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的 分治法 求解。

解法说明:

𝑑𝑝[𝑖]=𝑀𝑎𝑡ℎ.𝑚𝑎𝑥(𝑑𝑝[𝑖−1],0)+𝑛𝑢𝑚𝑠[𝑖]

如果以i-1为结尾的子序列最大值为负,那么不管怎么样,dp[i]就应该从头开始计数,因为前面的子序列已经不再有影响了,(dp[i - 1] + nums[i]必然小于nums[i])

func MinWindow

func MinWindow(s string, t string) string

func PalindromeString

func PalindromeString(s string) string

PalindromeString godoc

给你一个字符串 s,找到 s 中最长的 回文 子串。

示例 1:

输入:s = "babad" 输出:"bab" 解释:"aba" 同样是符合题意的答案。 示例 2:

输入:s = "cbbd" 输出:"bb"

func PalindromeStringDP

func PalindromeStringDP(s string) string

PalindromeStringDP godoc 设 dp[i][j] 表示字符串从索引 i 到 j 是否为回文。

若 s[i] == s[j] 且内部子串 s[i+1:j-1] 也是回文,则 dp[i][j] = true

func RemoveDuplicates

func RemoveDuplicates(nums []int) int

RemoveDuplicates

删除非严格递增数组中的重复元素

func SumTarget

func SumTarget(nums []int, target int) []int

SumTarget

给你一个下标从 1 开始的整数数组 numbers ,该数组已按 非递减顺序排列 ,请你从数组中找出满足相加之和等于目标数 target 的两个数。

如果设这两个数分别是 numbers[index1] 和 numbers[index2] ,则 1 <= index1 < index2 <= numbers.length 。

以长度为 2 的整数数组 [index1, index2] 的形式返回这两个整数的下标 index1 和 index2。

你可以假设每个输入 只对应唯一的答案 ,而且你 不可以 重复使用相同的元素。

你所设计的解决方案必须只使用常量级的额外空间。

Types

type Item

type Item struct {
	// contains filtered or unexported fields
}

type ListNode

type ListNode struct {
	Var  int
	Next *ListNode
}

func FindCycleStartNode

func FindCycleStartNode(l *ListNode) *ListNode

FindCycleStartNode

判断是否有环,若有,则返回环的起点

func FindKthLastInList

func FindKthLastInList(list *ListNode, k int) *ListNode

FindKthLastInList 单链表的倒数第 k 个节点

func FindMidNode

func FindMidNode(l *ListNode) *ListNode

FindMidNode

查找单链表的中点

func MergeKList

func MergeKList(in []*ListNode) *ListNode

MergeKList 给你一个链表数组,每个链表都已经按升序排列。

请你将所有链表合并到一个升序链表中,返回合并后的链表。

func MergeList

func MergeList(l1, l2 *ListNode) *ListNode

MergeList 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

func PartitionList

func PartitionList(l *ListNode, target int) *ListNode

PartitionList 给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 你应当 保留 两个分区中每个节点的初始相对位置。

func (*ListNode) Print

func (l *ListNode) Print()

type MaxHeap

type MaxHeap []Item

func (*MaxHeap) Len

func (h *MaxHeap) Len() int

func (*MaxHeap) Less

func (h *MaxHeap) Less(i, j int) bool

func (*MaxHeap) Pop

func (h *MaxHeap) Pop() any

func (*MaxHeap) Push

func (h *MaxHeap) Push(v any)

func (*MaxHeap) Swap

func (h *MaxHeap) Swap(i, j int)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL