算法和数据结构
每日算法一篇,从零开始学习算法
如何在5年薪百万
202110,如何5年内年薪百万
201901,如何3年内拿到50+,如果快速提升价值,拿到50k+的薪水
201801,如何在3年内拿到30+,我一工作6年,后面3年我要思考如何拿到30+
展开
-
【每日算法220719】通过数组实现队列
代码】【每日算法220719】通过数组实现队列。原创 2022-07-19 01:14:02 · 606 阅读 · 0 评论 -
【算法入门】什么是时间复杂度和空间复杂度,最优解
常数操作:执行时间固定和数据量没有关系的运算操作,如果和数据量有关就不是常数操作。时间复杂度:描述发生N次常数操作的指标。除了数据本身占用的空间,需要申请多少额外的空间来完成算法。估算时,每个数占用的空间为O(1)。列:插入中你自己使用了一个新的数组用来作为临时内存保存结果,空间复杂度就是O(N).直接跑几千万次,对比不同常数操作看哪个消耗时间短的就好。例如:对比乘法和位操作,可以发现位操作比较节省时间。所以位运算比普通运算好。冒泡排序 O(N^2)...原创 2022-06-09 05:10:59 · 837 阅读 · 0 评论 -
【每日算法220522】分区快速排序的从0到1
今日题目快速排序通过选择数组的最右侧数作为分隔符,将数组分割成小于区域,等于区域,大于区域,周而复始,最终将数组排序。今日心得数组相关的算法,一旦出现大量的systemcopy就说明不是最优解,没有充分利用数组空间。递归虽然理解很难,但是理解了解答就会很简单。只需要关注构建最小算法模型和边界条件。反而,使用非递归法的边界十分困难,非常容易出错。如果能画出纸上的过程,代码就实现了一半。否则,代码会卡在边界条件处理上,绕不出。算法编码package sort;/** * @ClassN原创 2022-05-22 19:24:28 · 196 阅读 · 0 评论 -
[每日算法0519] 二叉树逐层遍历和通过中序前序获取完整的树
今日题目二叉树的入门级别题目递归今日心得递归是算法的王道,对于初学者来说确实有点难。这么简单两行代码解决了复杂的问题,同时说明很重要。理解递归的本质是算法进阶的不二法门二叉树作为面试和工作中最常见的树,从此种下树苗,希望能慢慢成长。没有想象中那么难,至少可以默写一遍把。会有很多意想不到的困惑和收获。算法编码按层级倒叙打印二叉树package binarytree;import linklist.ListNode;import java.util.LinkedList;im原创 2022-05-19 00:37:34 · 234 阅读 · 0 评论 -
【每日算法220514】链表顺位相加和有序链表合并
今日题目题目1: 把两个长短链表按照顺序每一位相加后返回新的链表(难)题目2: 把两个有序链表合并后返回新的有序链表(中)今日心得直接看算法答案是不能提高算法水平的,算法最重要的就是解题思路而非编码。看了别人的思路去实现会少了最重要的部分。基本功就是数据结构的基本操作。比如链表结构以及如何遍历链表。如果这些知识都不具备。面试是不可能写出代码的,因为基本人你很难构思出如何遍历链表。算法编码链表结构package linklist;import java.util.List;/*原创 2022-05-14 02:01:22 · 303 阅读 · 0 评论 -
[每日算法220508] 单链表和双链表的反转
今日题目链表结构,单链表和双向链表链表的逆序今日心得算法要求太严格,理解别人的代码容易。字节写的时候差一点,结果就很难出现。一定要用示例演示算法过程,一开始就写抽象代码,边界条件很难想清楚。算法也是需要背的,多背两遍,多写两边。你就可以说你看这个就是入门的东西。算法并不高级,也不代表聪明程度。大部分人的算法都不到天分的程度。面试基本上也用不到天分。算法编码package linklist;/** * @ClassName SingleLinkList * @Descripti原创 2022-05-08 00:30:24 · 438 阅读 · 0 评论 -
[每日算法220505] 二分法与复杂度
今日题目二分法查找有序数组二分法解决局部最小值问题今日心得[局部最小]就是典型的纯算法题目,包含了很多隐藏的条件,如果不是事先准备。绝无可能在短时间内给出答案。抽象算法出来,需要通过一些具体的案例,用笔和纸演算。在脑中推算效率不高,大脑需要记忆太多内容。既要根据案例演算,也需要跳过细节,快速抽象出模型。然后通过对数器快速生成测试数据,根据测试结果调整算法。算法编码二分法查找有序数组package find;import math.Comp;import sort.Insert原创 2022-05-06 00:51:22 · 202 阅读 · 0 评论 -
为什么大厂程序员都要面试算法
这不是广告大部分起这个标题的都是广告,为了告诉你通过一些课程就能让你进入大厂。我主要是说给我自己听,我是如何决定在工作这么多年后开始学习算法,以及这样判断的决策依据是什么?一、算法和数据结构是什么算法是什么?具体的问题设计解决整个问题的流程设计评价流程好坏的标准和方法算法分类下面两大分类包含了所有明确知道如何算的流程,1+1=2,利用计算器更快速计算。不知道如何算,但是知道怎么尝试,通过计算机代替人工尝试的流程。举例问题: 给定个正数数组排序算法: 选择排序,冒泡排序,堆原创 2022-05-03 23:00:49 · 1582 阅读 · 1 评论 -
【每日算法220503】随机数和对数器
今日题目随机数的基本使用通过随机数生成对数器今日心得题目解法想不到很正常,不要新生惭愧。开始对于任何人都很难。就比如你想不到1+1等于2 一样。看似简单的问题,实际有复杂的推导过程。你不必要知道怎来的,但一定要学习1+1=2这个结论用来解决实际问题。练习做到位了,想法自然就有了一、 Math.random()函数等概率返回 double [0,1)int ans=(int)(Math.random()*K); 等概率返回任意整数获取不等概率返回[0,1)概率是x,Max(Mat原创 2022-05-03 21:49:21 · 407 阅读 · 0 评论