随笔 - 545
文章 - 0
评论 - 31
阅读 -
72万
03 2020 档案
[LeetCode] 42. 接雨水 ☆☆☆☆☆(按列、动态规划、双指针)
摘要:接雨水 描述 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 感谢 Marcos 贡献此图。 示例: 输入
阅读全文
[LeetCode] 382. 链表随机节点 ☆☆☆(随机算法:蓄水池抽样)
摘要:水塘抽样 蓄水池抽样算法 描述 给定一个单链表,随机选择链表的一个节点,并返回相应的节点值。保证每个节点被选的概率一样。 进阶:如果链表十分大且长度未知,如何解决这个问题?你能否使用常数级空间复杂度实现? 示例: // 初始化一个单链表 [1,2,3].ListNode head = new Lis
阅读全文
前缀和
摘要:前缀和技巧 问题引入--获取数组中任意区间段的和 描述 比如说给你一个数组 nums,让你实现一个接口 sum(i, j),这个接口要返回 nums[i..j] 的和,而且会被多次调用,你怎么实现这个接口呢? 因为接口要被多次调用,显然不能每次都去遍历 nums[i..j],有没有一种快速的方法在
阅读全文
不用加减乘除做加法
摘要:https://www.nowcoder.com/questionTerminal/59ac416b4b944300b617d4f7f111b215?answerType=1&f=discussion 描述 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 解析 链接:
阅读全文
数组中重复的数字
摘要:描述 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。 解析 抽屉法 数组的长度为
阅读全文
滑动窗口的最大值
摘要:描述 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5} 具体为: 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,
阅读全文
矩阵中的路径
摘要:https://www.nowcoder.com/questionTerminal/c61c6999eecb4b8f88a98f66b273a3cc?answerType=1&f=discussion 描述 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中
阅读全文
Redis 和 Memcached 的区别 Tair
摘要:存储方式上 :memcache 会把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小。redis 有部分数据存在硬盘上,这样能保证数据的持久性。 数据支持类型上 :memcache 对数据类型的支持简单,只支持简单的 key-value,,而 redis 支持五种数据类型。 使用底层模型不同
阅读全文
机器人的运动范围
摘要:描述 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+
阅读全文
汉诺塔问题
摘要:图解汉诺塔 描述 在三个柱子之间移动盘子,一次只能移动一个,并且要保证每一步上边的盘子都要比下边的盘子小,最终实现把所有的盘子都从最左边柱子移动到最右边的柱子上。 解析 柱子A B C 一个盘子 只有一个盘子的时候,就比较简单了。如图,只需要一步,直接把 第 1 个盘子从 A移动到 C就完成了。 二
阅读全文
洗牌算法
摘要:洗牌算法 描述 打乱一个数组。 所以我们面临两个问题: 1、什么叫做「真的乱」? 2、设计怎样的算法来打乱数组才能做到「真的乱」? 洗牌算法正确性的准则:产生的结果必须有 n! 种可能,否则就是错误的。**这个很好解释,因为一个长度为 n 的数组的全排列就有 n! 种,也就是说打乱结果总共有 n!
阅读全文
领域驱动设计(DDD)
摘要:领域驱动设计在互联网业务开发中的实践 领域驱动设计,根本目的在于,系统的高内聚低耦合。 通过拆分具体需求,生成核心上下文,各个支撑上下文,上下文之间低耦合。
阅读全文
Java动态代理机制详解(JDK 和CGLIB,Javassist,ASM) AspectJ
摘要:Java动态代理机制详解(JDK 和CGLIB,Javassist,ASM) 比较Spring AOP与AspectJ class文件简介及加载 java文件到class对象大体流程 Java编译器编译好Java文件之后,产生.class 文件在磁盘中。这种class文件是二进制文件,内容是只有JV
阅读全文
重构流程
摘要:如何来一次说干就干的重构 (流程篇) 重构的由来 随着公司业务的爆炸式的增长,需求规模和用户规模也迅速地膨胀起来,这样给系统的三高(高性能、高并发、高可用)以及扩展性、可维护性都带来了考验。而旧系统因为早期设计的各种局限性(如早期参与人员的水平、架构设计的前瞻性、老板的急性子等等),逐渐满足不了现状
阅读全文
性能优化方法论举例(***)
摘要:如何回答性能优化的问题 90%的人会遇到性能问题,如何用1行代码快速定位? 性能优化考虑点、工具 把具体的工具同性能指标结合了起来,同时从不同的层次去描述了性能瓶颈点的分布,实用性和可操作性更强一些。 系统层的工具分为CPU、内存、磁盘(含文件系统)、网络四个部分,工具集同性能工具(Linux Pe
阅读全文
线上紧急问题,如宕机、卡顿、bug等,如何快速反应和解决,具体解决方案
摘要:转载:如何快速处理线上故障 1. 概述 线上故障通常是指大规模的影响线上服务可用性的问题或者事件,通俗点讲就是:掉‘坑’里了,这个‘坑’就是线上故障!线上故障的处理过程可以形象地表达为:‘踩坑’、‘跳坑’、‘填坑’、‘避坑’。 线上故障的处理不仅是一项技术活,更是对技术人员/技术团队反应能力、决策能
阅读全文
全链路压测 容量规划
摘要:阿里巴巴的全链路压测 聊聊全链路压测 全链路压测笔记 为什么需要容量规划? 阿里巴巴有着非常丰富的业务形态,每种业务都由一系列不同的业务系统来提供服务,每个业务系统都分布式地部署在不同的机器上。随着业务的发展,特别是在大促营销等活动场景下(比如双 11),需要为每个业务系统准备多少机器对于阿里巴巴技
阅读全文