剑指offer
罗罗的1024
做个幸福的小吃货
展开
-
字符串匹配算法--RK算法
RK算法全程Rabin-Karp,该算法的2位发明者Rabin和Karp的名字组合而成。该算法的核心思想就是通过比较2个字符串的hashcode来判断是否包含对方。 但是要注意发生hash冲突 public class Student { public static void main(String[] args) { String source = "abcdefghijklmn"; String target = "efg"; System.out原创 2021-08-26 20:54:19 · 527 阅读 · 0 评论 -
中等---二维数组中的查找
在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 示例 [ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [18, 21, 23, 26, 30] ] 给定 target = 5,返回 true。 给定 target = 20,返回 fal.原创 2021-07-18 03:41:29 · 338 阅读 · 0 评论 -
简单---斐波那契篇
写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下: F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 N > 1. 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 看到斐波那契,直接反应递归, public int fib2(int n) { if (n == 0 || n == 1) return n;原创 2021-07-17 14:31:24 · 295 阅读 · 1 评论