攻城狮的自我修养
贪心算法应用实例 贪心算法应用实例
5.7 如何运用贪心思想玩跳跃游戏贪心算法可以理解为一种特殊的动态规划问题,拥有一些更特殊的性质,可以进一步降低动态规划算法的时间复杂度。 5.7.1 跳跃游戏1题目描述如下: 给定一个非负整数数组 nums ,你最初位于数组的 第一个下标
如何寻找最长回文子串 如何寻找最长回文子串
5.6 如何寻找最长回文子串5.6.1 问题分析给你一个字符串 s,找到 s 中最长的回文子串。 一般来说,由于回文串结构的特殊性,解决这种问题的核心是双指针 样例分析:输入s=acaba,那么算法应该要返回aca或者aba 当拿到题目
如何去除有序数组的重复项 如何去除有序数组的重复项
5.5 如何去除有序数组的重复项5.5.1 问题分析给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。 由于在某些语言中不能改变数组
二分搜索算法实例 二分搜索算法实例
5.3 如何应用二分搜索算法5.3.1 问题分析 二分搜索所应用到实际的算法的问题时,通常所具有的一个特征是:搜索空间是有序的。 珂珂喜欢吃香蕉。这里有 n 堆香蕉,第 i 堆中有 piles[i] 根香蕉。警卫已经离开了,将在 h 小时
并查集算法 并查集算法
5.11 Union-Find算法详解5.11.1 问题介绍并查集算法主要是用来解决图论中“动态连通性”问题的。 简单来说动态连通性其实可以抽象成一幅图连线,比如说有一幅图,总共有10个节点,它们互不连通,分别用0-9进行标记 Union
脑筋急转弯 脑筋急转弯
5.13 一行代码就能解决的算法问题5.13.1 Nim游戏你和你的朋友,两个人一起玩 Nim 游戏: 桌子上有一堆石头。你们轮流进行自己的回合, 你作为先手 。每一回合,轮到的人拿掉 1 - 3 块石头。拿掉最后一块石头的人就是获胜者。假
7 / 8