代码编织梦想

//45.跳跃游戏
func canJump(nums []int) bool {
	cover := 0
	for i := 0; i <= cover; i++ {
		cover = max(cover, i+nums[i])
		if cover >= len(nums)-1 {
			return true
		}
	}
	return false
}

//45.跳跃游戏II
func jump(nums []int) int {
	if len(nums)==1{
        return 0
    }
    next, cur := 0, 0 //next记录下一个最大覆盖范围,cur记录当前覆盖范围
	res := 0
	for i := 0; i <= len(nums); i++ {
		next = max(next, i+nums[i])
		if i == cur {
			if cur != len(nums)-1 {
				cur = next
				res++
				if cur >= len(nums)-1 {
					break
				}
			}
		}
	}
	return res
}
//121.买卖股票的最佳时机
func maxProfit(prices []int) int {
	low := math.MaxInt32 //int32最大值
	result := 0
	for i := 0; i < len(prices); i++ {
		low = min(low, prices[i])
		result = max(result, prices[i]-low)
	}
	return result
}
//763.划分字母区间
func partitionLabels(s string) []int {
	m := make([]int,26)
	left, right := 0, 0
	res := []int{}
	for i, _ := range s {
		m[int(s[i]-'a')] = i //统计最远出现位置
	}
	for i, _ := range s {
		right = max(right, m[int(s[i]-'a')])
		if i == right {
			res = append(res, right-left+1)
			left = i + 1
		}
	}
    return res
}
//56.合并区间
func merge(intervals [][]int) [][]int {
	res := [][]int{}
	sort.Slice(intervals, func(i, j int) bool {
		return intervals[i][0] < intervals[j][0]
	})
	res = append(res, intervals[0])
	for i := 1; i < len(intervals); i++ {
		if res[len(res)-1][1] >= intervals[i][0] {
			res[len(res)-1][1] = max(intervals[i][1], res[len(res)-1][1])
		}else{
            res=append(res,intervals[i])
        }
	}
    return res
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/fdyw_gzl/article/details/137180666

leetcode:算法题golang-爱代码爱编程

1、在一个字符串里面找出最长的不重复子串  LeetCode原题 func lengthOfLongestSubstring1(s string) int { dic := map[byte]int{} length, i := 0, -1 for j := 0; j < len(s); j++ { if _, ok := dic[s

LeetCode Golang Hot53-最大子数组和-爱代码爱编程

https://leetcode-cn.com/problems/maximum-subarray/ 贪心算法 package main import "fmt" func main() { res := maxSubArray([]int{-3, -1, -5}) fmt.Println(res) } func maxSubA

leetcode—189. 轮转数组(中等)-爱代码爱编程

题目描述: 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例1: 输入: nums = [1,2,3,4,5,6,7], k = 3输出:[5,6,7,1,2,3,4] 解释: 向右轮转 1 步:[7,1,2,3,4,5,6] 向右轮转 2 步:[6,7,1,2,3,4,5] 向右轮转 3

leetcode688:骑士在棋盘上的概率-爱代码爱编程

题目描述: 在一个 n x n 的国际象棋棋盘上,一个骑士从单元格 (row, column) 开始,并尝试进行 k 次移动。行和列是 从 0 开始 的,所以左上单元格是 (0,0) ,右下单元格是 (n - 1, n - 1) 。 象棋骑士有8种可能的走法,如下图所示。每次移动在基本方向上是两个单元格,然后在正交方向上是一个单元格。 每次骑士要

leetcode1812:判断国际象棋棋盘中一个格子的颜色-爱代码爱编程

题目描述: 给你一个坐标 coordinates ,它是一个字符串,表示国际象棋棋盘中一个格子的坐标。下图是国际象棋棋盘示意图。 如果所给格子的颜色是白色,请你返回 true,如果是黑色,请返回 false 。 给定坐标一定代表国际象棋棋盘上一个存在的格子。坐标第一个字符是字母,第二个字符是数字。 代码思路: 这个代码通过计算给定坐标的字

leetcode -爱代码爱编程

文章目录 前言1. 描述2. 示例3. 答案关于我们 前言 本题为 LeetCode 的高级会员解锁题 我们社区陆续会将顾毅(Netflix 增长黑客,《iOS 面试之道》作者,ACE

力扣-爱代码爱编程

题目 整数数组 sockets 记录了一个袜子礼盒的颜色分布情况,其中 sockets[i] 表示该袜子的颜色编号。礼盒中除了一款撞色搭配的袜子,每种颜色的袜子均有两只。请设计一个程序,在时间复杂度 O(n),空间复杂度O

力扣第97题 -爱代码爱编程

力扣第97题 - 交错字符串 题目描述 给定三个字符串 s1、s2 和 s3,判断 s3 是否可以由 s1 和 s2 按某种顺序交错组成。 定义:交错组成意味着 s3 中的字符可以按顺序来自 s1 或 s2,但不能

轮转数组-爱代码爱编程

轮转数组 1、题目描述2、解答思路2.1、辅助数组2.2、原地反转 1、题目描述 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 2、解答思路 2.

leetcode108.将有序数组转换为二叉搜索树-爱代码爱编程

标签:二叉搜索树 给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵平衡二叉搜索树。 示例 1: 输入:nums = [-10,-3,0,5,9] 输出:[0,-3,9,-10,null,5] 解释:[0,-10,5,null,-3,null,9] 也将被视为正确答案: 示例 2: 输入:nums

leetcode.三步问题-爱代码爱编程

题目描述: 三步问题。有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶或3阶。实现一种方法,计算小孩有多少种上楼梯的方式。结果可能很大,你需要对结果模1000000007。 示例1: 输入:n = 3 输出:4 说明: 有四种走法 示例2: 输入:n = 5 输出:13 提示: n范围在[1, 1000000]之间

leetcode hot100-爱代码爱编程

https://leetcode.cn/problems/find-minimum-in-rotated-sorted-array/description/?envType=study-plan-v2&envId=t

力扣——322. 零钱兑换-爱代码爱编程

给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。 计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。 你可以认为每种硬币的数量是无限的。 示例 1: 输入:coins = [1, 2, 5], amount = 11 输出:3 解释:11 = 5

leetcode热题100 最大子数组的和-爱代码爱编程

class Solution(object):       def maxSubArray(self, nums):         """         :type nums: List[int]         :rtype: int         """         max_array=[]         max_arra