摘要:
面试流实践:東京大学新領域人間環境学&情報学環総合分析情報学への合格经验贴 〇、前言——为什么要写这篇经验贴? 请原谅我写了一个“中日混杂”、“不伦不类”的标题,我想这就像我的修考之路一样,跟大多数人的选择有所不同,进而显得“不伦不类”。 在得知出愿的两个专攻都合格了之后,我的确高兴了一阵子,但最后 阅读全文
摘要:
出国、就业相关建议 零、前言 在大四这样一个关键的阶段,我相信大家已经深思熟虑,为自己的人生选择了一条相对合适的道路。对我们专业而言,绝大多数同学选择了「考研」,仅有少数同学选择出国、考公、就业。在这里,我们当然希望每位同学都能成功实现目标,但是由于近几年就业的不景气,考研的人数逐年增加,考研的客观 阅读全文
摘要:
通过有序线性结构构造AVL树 本博客旨在结局利用有序数组和有序链表构造**平衡二叉树(下文使用AVL树代指)**问题。 直接通过旋转来构造AVL树似乎是一个不错的选择,但是稍加分析就会发现,这样平白无故做了许多毫无意义的旋转。因为直接通过旋转调整**二叉查找树(下文使用BST代指)**并没有利用数组 阅读全文
摘要:
模拟法与螺旋矩阵 模拟法,就像其字面意思一样,使用计算机程序去模拟一个实际的过程。其实常见的模拟法不涉及到任何具体的算法,它只需要你的代码按照实际过程去运行。使用模拟法最重要的地方在于要分清模拟的各个过程,将一个过程分解为多个过程——方便我们去模拟,否则等着你的可能是极其复杂的边界检测。 54. 螺 阅读全文
摘要:
减治思想——二分查找详细总结 二分查找应用于有序数组,可以在以$O(\log(n))$时间复杂度进行查找。其思想在于利用数组的有序性直接排除掉一些元素,这也是进行“减治”的地方。二分查找思想看起来简单,但是其边界条件其实很容易弄混,下面就对各种情况的二分查找(基础情形、左边界二分查找、右边界二分查找 阅读全文
摘要:
滑动窗口法——Leetcode例题(连更未完结) 1. 方法简介 滑动窗口法可以理解为一种特殊的双指针法,通常用来解决数组和字符串连续几个元素满足特殊性质问题(对于字符串来说就是子串)。滑动窗口法的显著特征是:两个指针同方向运动,且往往要对窗口内每个元素都加以处理。 滑动窗口法(以鄙人目前的程度)来 阅读全文
摘要:
Leetcode26——删除有序数组中的重复项(双指针法) 1. 题目简述 给你一个升序排列的数组 nums ,请你原地 删除重复出现的元素,使每个元素只出现一次 ,返回删除后数组的新长度。元素的相对顺序 应该保持一致 。 由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分 阅读全文
摘要:
Leetcode1——两数之和 题目分类:数组、哈希表的应用 1. 题目描述 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复 阅读全文
摘要:
剑指Offer9——使用双栈模拟队列 队列Queue是具有FIFO(First in First out)特性的数据结构,栈Stack是具有LIFO(后进先出)特性的数据结构。下面提供一种思路使用双栈来模拟队列。 1. 思路——为何需要用两个栈? 很显然一个普通的栈是无法替代队列的,这是因为先进栈的 阅读全文
摘要:
剑指Offer30——包含min函数的栈 1. 题目简述 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数在该栈中,调用min、push及pop的时间复杂度是O(1)。 2. 题目分析 一个普通的栈push及pop操作时间复杂度均为O(1),但寻找最小元素的复杂度则为O(n)。 阅读全文