攻城狮的自我修养
09
09
前缀和算法 前缀和算法
4.9 前缀和解决子数组问题4.9.1 问题描述给定一个整数数组和一个整数 k ,请找到该数组中和为 k 的连续子数组的个数。 暴力的思路是直接穷举所有的子数组然后求和即可,关键是如何快速地得到某个子数组的和?比如给你一个数组nums,让
09
高效解决常见数论问题 高效解决常见数论问题
5.1 如何高效寻找素数5.1.1 常规解法 素数的定义:如果一个数只能被1和它本身整除,那么这个数就称为素数, 输入一个正整数n,函数返回区间[2,n)中素数的个数 一种常见的写法如下 public int countPrimes(
09
如何调度考生的座位 如何调度考生的座位
5.10 如何调度考生的座位5.10.1 问题描述在考场里,一排有 N 个座位,分别编号为 0, 1, 2, …, N-1 。 当学生进入考场后,他必须坐在能够使他与离他最近的人之间的距离达到最大化的座位上。如果有多个这样的座位,他会坐在编
09
脑筋急转弯 脑筋急转弯
5.13 一行代码就能解决的算法问题5.13.1 Nim游戏你和你的朋友,两个人一起玩 Nim 游戏: 桌子上有一堆石头。你们轮流进行自己的回合, 你作为先手 。每一回合,轮到的人拿掉 1 - 3 块石头。拿掉最后一块石头的人就是获胜者。假
09
并查集算法 并查集算法
5.11 Union-Find算法详解5.11.1 问题介绍并查集算法主要是用来解决图论中“动态连通性”问题的。 简单来说动态连通性其实可以抽象成一幅图连线,比如说有一幅图,总共有10个节点,它们互不连通,分别用0-9进行标记 Union
09
二分搜索算法实例 二分搜索算法实例
5.3 如何应用二分搜索算法5.3.1 问题分析 二分搜索所应用到实际的算法的问题时,通常所具有的一个特征是:搜索空间是有序的。 珂珂喜欢吃香蕉。这里有 n 堆香蕉,第 i 堆中有 piles[i] 根香蕉。警卫已经离开了,将在 h 小时
17 / 19