摘要:
在软件系统设计的时候,我们需要把一个大的系统按照业务功能进行拆分,做到高内聚、低耦合。 但是呢,拆分之后会产生一些通用性的东西,比如日志,安全,事务,性能统计等,这些非功能性需求,横跨多个模块。最low的一种写法如下: 为什么说上面这种方式low呢,主要是因为它把日志、安全、事务、性能统计这些非业务 阅读全文
摘要:
1. 买卖股票的最佳时机 问题描述 LeetCode 121。 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。 注意你不能在买入股票前卖出股票。 示例 1: 示例 2: 思路 动态规划。 阅读全文
摘要:
这里权当一个matplotlib的用法小结,主要用于记录,以防忘记。 需要安装一下Anaconda,这里推荐清华大学的镜像:https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/ matplotlib能将数据进行可视化,更直观地呈现。使数据更加客观,更 阅读全文
摘要:
题目描述 思路 这道题就是在说,由多个1组成的数是beautiful的,现在想求出r进制中的r,使得给出的数字转换成r进制,得到beautiful的数字,如果有多种方式转换,那么取1的个数最多的那种情况,也就是r最小的情况。 这道题其实就是10进制和r进制的转化,这里就不详述了,但是注意题目中的一点 阅读全文
摘要:
在刷谷歌面试题的过程中,发现一道有意思的题目,以前没有特别注意,忽略了一些东西,特此记录。 题目要求输出以下代码的结果: 结果分析: new Integer(2) == 2,输出为true,因为Java自己拆箱了,即执行了new Integer(2).intValue()。 new Integer( 阅读全文
摘要:
在数据库的锁机制中介绍过,数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性。 乐观并发控制(乐观锁)和悲观并发控制(悲观锁)是并发控制主要采用的技术手段。 无论是悲观锁还是乐观锁,都是人们定义出来的概念,可以认为是一种 阅读全文
摘要:
1. 最小的K个数 题目描述 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。 思路 Java 中的PriorityQueue是一个基于优先级堆的无界优先级队列。优先级队列的元素按照其自然顺序进行排序,或者根据构造队列时提供的 阅读全文
摘要:
题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 思路 这道题最简单的思路就是排序,然后统计每个数字出现的次数,这样时间复杂度是 阅读全文
摘要:
赶在新年之前,我面试了字节跳动广告部门的品牌广告后端研发工程师,并收获了实习offer,我想把实习面试的题目分享出来,供大家参考。 字节跳动还是依旧非常注重算法能力,所以面试过程算法比重依旧比较大,不知道是不是年前比较缺人的原因,这次面试一共经历了两面,而且难度比我去年面试抖音略简单一下,下面是面试 阅读全文
摘要:
题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 思路 因为是二叉搜索树,所以中序遍历就是有序的,这里采用非递归中序遍历,并通过前驱指针pre,进行转换。 代码 阅读全文