nooblong

算法学习

二分查找的时间复杂度 假设找到x我们最多需要的步骤是f(N)。 第一步,我们将A[N]一分为二,根据有序数组的特性,通过比较x与标的元素的大小,知道了x落入其中一个子数组B[N/2]。此时问题就变成了 给定一个包含有N/2个元素的有序数组B[N/2],我们要使用二分法知道元素x是否存在这个数组中。 此时我们进行了一次对比,那么f(n)可以写成 f(N) = 1 + f(N/2) ...

好文

看一遍就理解:动态规划详解 前言 我们刷leetcode的时候,经常会遇到动态规划类型题目。动态规划问题非常非常经典,也很有技巧性,一般大厂都非常喜欢问。今天跟大家一起来学习动态规划的套路,文章如果有不正确的地方,欢迎大家指出哈,感谢感谢~ 什么是动态规划? 动态规划的核心思想 一个例子走进动态规划 动态规划的解题套路 leetcode案例分析 公众号:捡...

编程面试大学

编程面试大学 原先我为了成为一个软件工程师而建立这份简单的学习主题清单, 但这份清单随着时间的推移而膨胀成今天这样。在做完这份清单上的每个目标后,我成为了 Amazon 的软件开发工程师! 你或许不需要像我一样学习这么多。但是,让你成为一位称职工程师所需要的知识都在这里了。 我每天自学8~12小时,这样持续了好几个月。这是我的故事:为什么我为了 Google 面试而自学了8个月...

okhttp源码分析

okhttp源码分析笔记 下面将通过同步和异步的基本使用方式、Dispatcher作用、主要的拦截器功能、缓存策略以及连接池,一步步分析底层实现流程。 基本使用大致分析 OkHttpClient有两种请求的方式,一是同步请求,二是异步请求。下面先简单看下两种请求的不同使用方法,然后简略看看请求内部运作流程,得出一个大致了解后,有个整体印象,抓住关键点。 同步请求 同步请求示例: ...