- 博客(65)
- 资源 (1)
- 收藏
- 关注
原创 《系统之美》笔记
系统之美第一部分:系统的结构与行为1.系统之基础第二部分:系统思考与我们3.系统之美:系统的三大特征4.系统之奇:系统的六大障碍5.系统之危与机:系统的8大陷阱与对策第三部分:改变系统6.系统之杠杆点:系统的12大变革方式7.与系统之舞:系统的15大生存法则第一部分:系统的结构与行为1.系统之基础整体大于部分之和对于任何一个系统来说,整体大于部分之和。任何一个系统都包括三个构成要件:要素、连接、功能或目标。它具有适应性,动态性,目的性,并可以自组织,自我保护与演进。系统三要件的关系:对一个系
2022-11-09 20:54:05
2454
原创 《剑指offer》12.矩阵中的路径
矩阵中的路径LeetCode 剑指offer 12.矩阵中的路径题目描述:请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。例如,在下面的3×4的矩阵中包含一条字符串“bfce”的路径(路径中的字母用加粗标出)。[[“a”,“b”,“c”,“e”],[“s”,“f”,“c”,“s”],[“a”,“d”,“e”,“e”]]但矩阵中不包
2022-11-06 14:48:05
230
原创 《剑指offer》10.斐波那切数列
题目一斐波那切数列LeetCode:剑指offer 10.斐波那切数列写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出示例1:输入:n=3输出:2示例2:输入:n=5输出:5参考解题:public class Sol
2022-11-05 17:03:06
151
原创 《剑指offer》11.旋转数组的最小数字
旋转数组的最小数字LeetCode:剑指offer 11.旋转数组的最小数字题目描述:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。...
2022-11-05 11:13:40
133
原创 《剑指offer》09.利用两个栈实现队列
利用两个栈实现队列LeetCode:剑指offer 09.利用两个栈实现队列题目描述:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例1:输入:["CQueue","appendTail","deleteHead","deleteHead"][[],[3],[],[]]输出:[null,null,3,-1]示例2
2022-11-03 17:03:22
129
原创 《剑指offer》07.重建二叉树
重建二叉树LeetCode:剑指offer 07.重建二叉树输入某二叉树前序遍历和中序遍历的结果,请重建该二叉树,假设输入的前序遍历和中序遍历的结果都不含重复的数字示例:前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下二叉树: 3 / \ 9 20 / \ 15 7二叉树的节点定义如下:public class TreeNode { int val; Tre
2022-11-01 10:23:45
328
原创 七大常见基于比较的排序算法
七大常见基于比较的排序算法1.直接插入排序2.希尔排序3.选择排序4.堆排序5.冒泡排序6.快速排序7.归并排序1.直接插入排序/** * 时间复杂度: * 最好情况下【有序的情况下】:O(N) * 最坏情况下[无序的时候->逆序的时候]:O(n^2) * 平均情况下(期望的时间):O(n^2) * 空间复杂度:O(1) * 稳定性:稳定的排序 * * 直接插入排序的特点:越有序越快!-》一般插入排序用到一些要优化的地方 * * 记住:一个稳定的排序,可
2022-11-01 10:16:54
2362
原创 《基层女性》摘录
基层女性自我成长,物质与精神的双独立独立生活,建立自己的物质和精神世界像海绵一样去学习繁荣自己的精神王国去过不被绑架的人生真正的自私是以爱之名的情感勒索克服思想上的贫穷安全感是你手头的种植术不被社会营销的游戏扰乱了心智像水一样去生活自信来自大量的经验为生命负责,才是真正的“爱自己”两性关系,创造价值,分享利益年轻人要多谈恋爱爱是精神的奢侈品自我成长,物质与精神的双独立去运动,学习,和人坦诚的交流,交一些志同道合的朋友,生命有了体验之后,经验就会逐渐积累。自信随之而来,你才会对生活建立自己的理解,对生命产
2022-10-30 22:09:49
1648
原创 《剑指offer》06.从尾到头打印链表
从尾到头打印链表LeetCode:剑指offer 07.从尾到头打印链表题目描述:输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)示例:输入:[1,2,3,4]输出:[4,3,2,1]题目考点考查应聘者对单向链表的理解和编程能力。考查应聘者对循环、递归和栈3个相互关联的概念的理解。解题思路使用头插法将链表反转当链表反转过后,每个节点的值就可以从头到尾输出了。PS: 在面试中,如果我们打算修改输入的数据,则最好先问面试官是否允许修改。使用栈每经过一个节点的
2022-10-28 10:46:24
132
原创 前缀,后缀表达式(逆波兰表达式),中缀表达式转为对应的后缀表达式,逆波兰计算器的实现(java)
波兰表达式1.前缀,中缀,后缀表达式规则介绍1.前缀表达式(波兰表达式)1.前缀,中缀,后缀表达式规则介绍1.前缀表达式(波兰表达式)前缀表达式的运算符位于操作符之前例如:(3+4)*5-6对应的前缀表达式就是== - * + 3 4 5 6==前缀表达式的计算机求值从左至右扫描表达式,遇到数字时就将数字压入堆栈,遇到运算符时弹出栈顶的两个数,用运算符对它们做相应的计算(栈顶元素和次顶元素)完成堆逆波兰表达式的运算 //完成对逆波兰表达式的运算 /* * 1)从左至右扫描,将3
2022-10-28 10:21:50
853
原创 《剑指offer》05.替换空格
替换空格LeetCode:剑指offer05.替换空格题目描述:请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例:输入:str = "we are happy"输出:"we%20are%20happy"考点:考察应聘者对字符串的编程能力。考察应聘者分析时间效率的能力、我们要能清晰的分析出两种不同方法的时间效率各是多少。考察应聘者对内存覆盖以及StringBuild长度随append的动态改变是否有高度的警惕。考察应聘者的思维能力,在从前到后替换的思路被面试官否定后,
2022-05-17 15:03:48
225
原创 《剑指offer》04.二维数组中的查找
二维数组中的查找LeetCode:《剑指offer》04.二维数组中的查找问题描述:在一个 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,
2022-05-16 10:07:18
105
原创 栈与队列基础知识,使用栈完成计算一个表达式,常见面试题
栈与队列1.栈1.1栈的定义及实现1.2栈的应用2.队列2.1队列的定义及实现1.栈1.1栈的定义及实现1.2栈的应用2.队列2.1队列的定义及实现
2022-04-30 08:38:44
278
原创 《剑指offer》03.数组中重复的数字
03.找出数组中重复的数字1.找出数组中重复的数字。2.不修改数组找出重复的数字1.找出数组中重复的数字。问题描述:在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例:输入:[2,3,1,0,2,5,3]输出:2或者3限制:n<=2<=100000测试用例:长度为n的数组包含一个或多个重复的数字。数组中不包含重复的数字。无效
2022-04-29 11:32:10
635
原创 约瑟夫问题---单向环形链表的应用
1.约瑟夫问题描述Josephu问题为:设编号为1,2,…n的n个人围坐一圈,约定编号为k(1<=k<=n)的人从1开始报数,数到m的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,以此类推,直到所有人出列为止,由此产生一个出队编号的序列链表知识可参考这篇...
2022-04-27 14:51:42
143
原创 稀疏数组的实现
稀疏数组1.稀疏数组的应用场景2.稀释数组转换的思路分析3.稀疏数组代码实现1.稀疏数组的应用场景一个实际需求问题分析:因为该二维数组很多值是默认值0,因此记录了很多没有意义的数据=>稀疏数组基本介绍:当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。处理方法:第一行记录数组一共有几行几列,有多少个不同的值把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模举例说明:如下一个原始二位数组:转换为稀疏数组:2.稀释
2022-04-21 20:53:37
242
1
原创 堆,向下调整算法,向上调整算法,数组建堆,堆排序,Topk问题
堆1.堆的基本概念,操作及实现1.1概念1.2操作---向下调整2.堆的应用---优先级队列2.1操作---入队列2.2操作---出队列2.堆排序3.Topk问题1.堆的基本概念,操作及实现1.1概念1.概念:堆逻辑上是一颗完全二叉树堆物理上是保存在数组中满足任意节点的值都大于其子树中节点的值叫做大堆,或者大根堆满足任意节点的值都小于其子树中节点的值叫做小堆,或者小根堆堆的基本作用是,快速找到集合中的最值2.下标关系已知双亲(parent)下标则:左孩子(left)下标 = 2*p
2022-04-10 18:09:20
1660
4
原创 二叉树的基本介绍与常见面试题总结
二叉树1.二叉树前中后序的递归写法1.1前序遍历1.2中序遍历1.3后序遍历2.二叉树的层序遍历2.1层序遍历2.2判断一棵二叉树是否为完全二叉树3.二叉树相关面试题总结3.1求一棵二叉树的节点个数3.2求一棵二叉树叶子节点个数3.3第K层的节点个数3.4 获取二叉树的高度3.5在二叉树中查找值为val的一个节点3.6检查两棵树是否相同3.7判断一棵树是否为另一棵树的子树3.8判断是否为平衡二叉树3.9给定一个二叉树,判断其是否镜像对称3.10寻找最近公共祖先3.11将一个搜索二叉树转变为双向链表(有序)3
2022-03-19 16:04:58
752
1
原创 栈与队列及其常见面试题
栈与队列1.问题:给定一个只包括'(',')','{','}','[',']'的字符串s,判断字符串是否有效2.用队列实现栈3.栈实现队列4.设计一个支持push pop top操作,并能在常数时间内检索到最小元素的栈5.设计一个循环队列1.问题:给定一个只包括’(’,’)’,’{’,’}’,’[’,’]'的字符串s,判断字符串是否有效有效条件:1.左括号必须用相同类型的右括号闭合2.左括号必须以正确的顺序闭合解:匹配时可能的情况:1.( { } )匹配2.(((()左括号多3.())))右
2022-03-05 09:22:09
475
1
原创 链表常见面试题总结
链表常见面试题总结1. 删除链表中等于给定值 **val** 的所有节点。2. 反转一个单链表。3. 给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。4. 输入一个链表,输出该链表中倒数第k个结点。5.将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。6. 编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前 ,且保证顺序不变。7.在一个排序的链表中,存在重复的结点,请删除
2022-02-07 14:34:00
510
11
原创 刻意练习---学习的方法
刻意练习人的大脑适应性是非常强的刻意练习:1. 要有具体明确的目标,最好是可以衡量的2. 一定要专注(很重要)3. 努力的挑战,走出舒适区4. 每次练习都要有反馈心理表征:你对一个事情所形成的下意识的反应,不需要大脑思考的一种无意识反应练习就是要不断地去建立各种各样的熟练化的心理表征错误思想:1. 基因限制2. 足够长的时间3. 只需要足够努力我就一定怎样怎样刻意练习的原则:1. 专注,一定要足够的专注。不要放着娱乐的心态去练习,过程一定是枯燥的,要努力去坚持。2. 及时反馈
2022-02-02 21:52:41
434
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人