
数据结构
文章平均质量分 64
代码随想随记
211本硕,人工智能方向,前A应用算法专家,发明专利十余项,目前致力于大模型和RAG方向。
懂点工程,会点算法,
如有机器学习/深度学习/大模型/RAG等方向朋友可以一起探讨。
展开
-
数据结构与算法系列之链表
数据结构与算法系列之链表写在前面链表的分类与定义链表的分类链表的定义链表lc题目与解析(分链表专题123说)总结写在前面本文是数据结构与算法系列读书笔记,重点在于学习过程中记录。顺序按照链表-队列/栈 - 树 - 贪心 - 动态规划 - 图 - 最大流/最小流的顺序来进行讲解。预估耗时1年左右。【2020-12-01开始,预估2021-12-31结束】一期重点攻克leetcode上面的题目,学有余力会夹带算法竞赛中的一些题目。题目的实现主要用python 和 Java 两种语言实现。github建仓进原创 2020-12-02 00:18:35 · 140 阅读 · 0 评论 -
python列表先按第一个元素排列,再按第二个元素排列(默认升序)
>>> array = [(3, 5), (1, 1), (2, 3), (5, 15), (4, 10)]>>> array.sort(key = lambda x : (x[0], x[1]))>>> array[(1, 1), (2, 3), (3, 5), (4, 10), (5, 15)]原创 2020-10-18 22:51:10 · 7028 阅读 · 0 评论 -
leetcode动态规划系列题解之二
leetcode动态规划系列题解之二leetcode750角矩形的数量题目大意解题思路暴力求解优化方法一:采用同时遍历两行,在同一列上判断其交点是否为1进行求解leetcode750角矩形的数量题目大意解题思路暴力求解暴力破解思路如下:1、先确定左上角的顶点,从左到右遍历行列数(行数假设为m,列数假设为n),此时确定一个矩形的左上角的顶点。记录该顶点为(i, j)。2、以(i, j)为矩形的左上角顶点,从j+1遍历到n,如果点为0,则继续,如果为1,则进行下一步。假设为1的点为(i,k)。原创 2020-10-03 22:31:53 · 208 阅读 · 0 评论 -
动态规划系列之背包问题
背包问题背包问题0-1背包0-1背包问题题目0-1背包问题解题思路276. 栅栏涂色背包问题背包问题是一类经典问题,经典的背包九讲、推荐博客。主要有0-1背包、完全背包、分组背包、多重背包。0-1背包0-1背包问题题目0-1背包问题主要场景如下:有N件物品和一个容量为V的背包。第i件物品的费用是C_i ,价值是 W_i 。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。0-1背包问题解题思路276. 栅栏涂色276. 栅栏涂色leetcode链接题目描述:原创 2020-10-01 23:21:12 · 272 阅读 · 0 评论 -
leetcode单调栈的应用系列之概念篇(python版)
leetcode单调栈写在前面什么是单调栈单调栈的定义单调栈的分类单调递增栈单调栈实现基本思想单调递增栈的作用单调递减栈单调递减栈的作用写在前面最近博主在leetcode上刷题时发现一个新的数据结构:单调栈,可以用来优化时间复杂度,是个利器。楼主在这里做一个单调栈系列总结。什么是单调栈单调栈的定义单调栈,顾名思义,是一个单调的栈。栈内元素一般都是无序的,如何保持栈内元素是有序的呢?接下来,我们进行分析。单调栈的分类从数学上,我们知道,单调一般有单调递增和单调递减。那么对于单调栈来说,一般有单调原创 2020-08-30 09:30:04 · 1480 阅读 · 0 评论 -
合并两个有序链表
题目:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。解题思路:1、递归法:# -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution:...原创 2020-04-21 11:51:39 · 168 阅读 · 0 评论 -
算法设计与分析基础(第三版)之第8章 动态规划
本博客主要是对Anany Levitin著、潘彦译的算法设计与分析基础(第三版)之第8章 动态规划进行代码梳理与讲解,代码语言主要为Python,其他语言也类似,可以把Python的解题方法看成是伪代码进行转换。动态规划是数据结构中最重要的一环,也是面试中大家觉得头大的一类面试题型。关于动态规划的解题方法可以参考博主另一篇博文:一文详解动态规划【更新ing】。这篇博文的主要目的在于对书中的题目进...原创 2019-11-25 12:34:57 · 1763 阅读 · 0 评论 -
一文详解动态规划【更新ing】
动态规划是面试中最常见的面试题型,面试难度相对较高,也能很好的辨认面试者对于数据结构的掌握水准,同时也可以对面试者的思维严谨性、逻辑完备性、算法功底扎实性进行全方位的考察。...原创 2019-11-24 10:49:39 · 368 阅读 · 0 评论 -
Python深度优先遍历(DFS)和宽度优先遍历(BFS)一文详解足矣
深度优先遍历和宽度优先遍历深度优先遍历和宽度优先遍历的概念图的BFS和DFS树的BFS和DFS 深度优先遍历和宽度优先遍历是数据结构中两种常见的遍历方式,通常见于图和树的遍历问题中【当然,树可以看成简单的图】。本文从概念开始将起,然后通过Python开始进行简单实战与讲解,能够力争一篇文章可以帮大家弄明白这个问题。...原创 2019-10-30 21:19:18 · 1283 阅读 · 0 评论 -
牛客网--求旋转数组最小值(Python、Java、Scala全套上)
目录题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。一、Python:1.1 直接使用min函数解题,但不足以拿到offer# -*- coding:ut...原创 2018-11-27 21:15:14 · 381 阅读 · 0 评论 -
一文搞定链表面试题系列之二 —— Leetcode234. Palindrome Linked List回文链表\...
链表荟萃二:回文链表列表解法回文链表题目:回文链表给定一个链表,判断该链表是否是回文链表,要求O(n)时间复杂度,O(1)空间复杂度。Given a singly linked list, determine if it is a palindrome.Example 1:Input: 1->2Output: falseExample 2:Input: 1->2...原创 2018-12-05 00:46:44 · 262 阅读 · 0 评论 -
Leetcode 11. Container With Most Water
题目:给定一个数组,数组下标作为横轴,对应的数值作为纵轴,求两个纵轴之间能装的最大雨水量。Given n non-negative integers a1, a2, …, an , where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints...原创 2018-11-06 22:11:01 · 304 阅读 · 0 评论 -
LeetCode ---189. Rotate Array
相似的Leetcode题目:Sort Array By ParityRotate Array题目:Given an array, rotate the array to the right by k steps, where k is non-negative.Example 1:Input: [1,2,3,4,5,6,7] and k = 3Output: [5,6,7,1,2,3,...原创 2018-11-06 22:04:35 · 211 阅读 · 0 评论 -
Leetcode——905. Sort Array By Parity
Leetcode题目[1]:Given an array A of non-negative integers, return an array consisting of all the even elements of A, followed by all the odd elements of A.You may return any answer array that satisfie...原创 2018-10-22 21:24:06 · 248 阅读 · 0 评论 -
朴素模式匹配与KMP算法详解(附上Python代码)
给定题目:找出一个字符串S中的子串T并输出起始位置,如果有多个起始位置,输出最小位置。 解法一: 思路:从字符串S开始遍历,如果遍历到字符串S[i:i+len(T)]与字符串T相等,那么即可输出起始位置。如果遍历到字符串尾,仍然没有找到,那么没有最小位置,输出None。 上代码:"""@:param朴素字符串匹配算法题目:两个字符串S和T,假设T是子串,找出该子串在S中的位置。...原创 2018-09-13 08:08:55 · 546 阅读 · 0 评论 -
算法第四版——学习参考备忘
关注5,有时间看3/4<课本的Coursera> Ref: 1、https://www.zhihu.com/question/27876056 2、https://blog.youkuaiyun.com/wjheha/article/details/74276753 3、https://www.coursera.org/learn/algorithms-part1 4、https://w...原创 2018-08-23 09:51:13 · 560 阅读 · 0 评论 -
LeetCode--计算树的最小深度
Problem:https://leetcode.com/problems/minimum-depth-of-binary-tree/description/思路分析:该题目对应最大深度,树的最大深度求解思路一般是求解树的左右子树深度,然后取最大值+1(+1因为根的存在),最小深度考虑一边子树不存在时的最小深度即为最大深度。Solution:# Definition for a binary tr...原创 2018-06-12 07:08:00 · 263 阅读 · 0 评论