二、算法领域
二、算法领域
未来星_狒狒
既然笨到家,就努力到家
展开
-
删除有序数组中的重复元素-练习双指针编程最好的一道题-费元星
简单理解:采用双指针,总左边进行开始,如果有新元素则将前面移动到后面。然后加一个剪枝操作,如果前后元素大于1,再移动。这是练习编成双指针最好的一道题,逻辑简单,优化简单。,返回删除后数组的新长度。删除重复出现的元素,使每个元素。原创 2023-12-08 20:45:00 · 393 阅读 · 0 评论 -
回溯算法与深度优先遍历-算法
在分步解决问题的过程中,当它通过尝试发现现有的分步答案不能得到有效的正确的解答的时候,它将取消上一步甚至是上几步的计算,再通过其它的可能的分步解答再次尝试寻找问题的答案。的那条边的起始结点。我刚开始学习「回溯算法」的时候觉得很抽象,一直不能理解为什么递归之后需要做和递归之前相同的逆向操作,在做了很多相关的问题以后,我发现其实「回溯算法」与「我个人的理解是:「回溯算法」强调了「深度优先遍历」思想的用途,用一个。而「深度优先遍历」强调一种遍历的思想,与之对应的遍历思想是「广度优先遍历」。」有着千丝万缕的联系。原创 2023-12-05 21:00:00 · 532 阅读 · 0 评论 -
【算法】合并K个升序链表
当然也可以采用分治的思路;或采用最小堆的思路;面试中校招同学写出一种即可,如果能全概览讲一下,就更加分了。这道题主要考察的是归并排序,因为已经升序过了,更好理解了。请你将所有链表合并到一个升序链表中,返回合并后的链表。给你一个链表数组,每个链表都已经按升序排列。将它们合并到一个有序链表中得到。原创 2023-12-01 22:45:00 · 451 阅读 · 0 评论 -
【动态规划总结】动态规划算法掌握一种技巧-完美理解
简单来说,动态规划其实就是,给定一个问题,我们把它拆成一个个子问题,直到子问题可以直接解决。),是一种在数学、管理科学、计算机科学、经济学和生物信息学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。然后呢,动态规划就致力于解决每个子问题一次,减少重复计算,比如斐波那契数列就可以看做入门级的经典动态规划问题。动态规划是比较难掌握的一种算法,在学校就怕它,每次刷题都躲着它,工作多年,做的题多了,和人交流的多了,发现也没有那么难,掌握好技巧即可。动规解题技巧要领:死记硬背下来。原创 2023-11-30 20:00:00 · 469 阅读 · 0 评论 -
【算法-链表】完美解题-给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。
很久没复习算法题了,最近校招面试,有机会把这些题再复习一下,温故而知新。这道题如果复杂度保持O(N) 有很多种办法,是一个锻炼编程能力的好题;1.采用两遍链表遍历,第二遍找到位置,直接进行节点调整即可。给你一个链表,删除链表的倒数第。个结点,并且返回链表的头结点。你能尝试使用一趟扫描实现吗?3.采用压栈,先进先出。原创 2023-11-29 20:18:54 · 386 阅读 · 0 评论 -
【综合】软件领域算法总攻略
软件开发从14年实习开始,至今已近9年;刚毕业时文章多数记录在博客园,后受公司避风港原则,文章逐步发布在内网,或个人笔记中。业界比较认可的是用leetcode进行刷题,但缺少一个螺旋攀升的指南,后听过一些前辈的算法课,逐步有一些自己的方法论。这里记录自己的一些自己心得体会。原创 2023-11-24 17:11:27 · 322 阅读 · 0 评论