5.数据结构与算法笔记
数据结构与算法笔记
图解AI
致力于:机器学习、深度学习、数据分析、算法、架构、C/C++、Rust、HTML5/webApp、Go、Python、Lua...
展开
-
[数组]数组对象根据key相同合并分组
var arr = [{"id":"1001","name":"值1","value":"111"},{"id":"1001","name":"值1","value":"11111"},{"id":"1002","name":"值2","value":"25462"},{"id":"1002","name":"值2","value":"23131"},{"id":"1002","name":"值2","value":"2315432"},{"id":"1003","name":"值3","val原创 2020-10-24 10:03:13 · 1182 阅读 · 0 评论 -
[算法Rust,Go,Python,JS实现)]LeetCode之3-无重复字符的最长子串
题目给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是...原创 2019-04-04 10:34:27 · 3895 阅读 · 1 评论 -
[算法Rust,Go,Python,JS实现)]LeetCode之27-移除元素
题目给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中...原创 2019-03-23 12:14:03 · 4581 阅读 · 0 评论 -
[算法Rust,Go,Python,JS实现)]LeetCode之53-最大子序和
题目给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。思路1.定义两个变量sum(递推和),max_sum(保存连续值的最大值)2.如果sum<0 则sum等于重置为当前的元素 否则元素累...原创 2019-03-25 21:11:33 · 4447 阅读 · 0 评论 -
[算法Rust,Go,Python,JS实现)]LeetCode之38-报数
题目:报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:1. 12. 113. 214. 12115. 1112211 被读作 "one 1" ("一个一") , 即 11。11 被读作 "two 1s" ("两个一"), 即 21。21 被读作 "one 2", "one 1" ("一个二" , ...原创 2019-03-25 16:45:06 · 4575 阅读 · 0 评论 -
[算法Rust,Go,Python,JS实现)]LeetCode之35-搜索插入位置
题目给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输出: 0...原创 2019-03-25 11:11:49 · 4620 阅读 · 1 评论 -
【常用数据结构及应用】算法笔记---链表
链表原创 2019-03-17 12:25:49 · 4852 阅读 · 1 评论 -
图解二叉树搜索算法
二叉查找树(Binary Search Tree),也称二叉搜索树,是指一棵空树或者具有下列性质的二叉树: 任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 任意节点的左、右子树也分别为二叉查找树; 没有键值相等的节点。 二叉查找树相比于其他数据结构的优势在于查找、插入的时间复杂度较原创 2016-09-09 16:30:05 · 14360 阅读 · 1 评论 -
[算法]直线与圆的交点程序设计
/** * Created by apple on 2017/1/15. *///求直线与圆的交点/*函数参数说明: cx:圆X轴坐标 cy:圆y轴坐标 r:圆半径 stx:起点直线的X轴坐标 sty:起点直线的轴坐标 edx:终点直线的X轴坐标 edy:终点直线的Y轴坐标 返回值:交点坐标(x,y)*/function getPoint(cx,cy,r原创 2017-01-15 19:44:57 · 17197 阅读 · 3 评论 -
[算法Rust,Go,Python,JS实现)]LeetCode之14-最长公共前缀
题目编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 &amp;amp;quot;&amp;amp;quot;。示例 1:输入: [&amp;amp;quot;flower&amp;amp;quot;,&amp;amp;quot;flow&amp;amp;quot;,&amp;amp;quot;flight&amp;amp;quot;]原创 2019-03-06 21:38:33 · 4736 阅读 · 0 评论 -
【常用数据结构及应用场景笔记】算法笔记---栈
1. 栈通常所说的栈,是一种线性结构,在我们写程序也运用的比较广泛。2. 栈的特点后进先出,通俗点讲,栈的插入或者删除只能在表的&amp;amp;quot;顶端&amp;amp;quot;进行操作的线性表。注:对于栈,表尾称之为栈顶(top);表头称之为栈低(bottom)3.栈的操作栈的基本操作:1,栈的创建。 CreatStack(SqStack &amp;amp;amp;amp;s)2,压栈操作。 Push(SqStack &a原创 2019-03-14 10:46:31 · 4754 阅读 · 0 评论 -
【常用数据结构及应用场景笔记】算法总结01
想尝试再把数据结构与算法上通用算法用不同的语言都实现一遍,做个总结,这里主要用Rust、Go、Python、JavaScript四种语言去实现,主要是考虑到之前的C/C++/java版本实现的太多了。常见的数据结构:一 线性表1.数组2.链表二 栈和队列三 树和二叉树1.树2.二叉树3. 平衡二叉树4. 红黑树四 图...原创 2019-03-14 10:03:44 · 4801 阅读 · 1 评论 -
[算法Rust,Go,Python,JS实现)]LeetCode之09-回文数
题目判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。...原创 2019-03-03 22:58:46 · 5128 阅读 · 0 评论 -
[算法Rust,Go,Python,JS实现)]算法与数据结构汇总
用四种语言(go,javascript,python,rust)实现LeetCode题目,顺便对数据结构,算法进行汇总和总结。原创 2019-02-23 21:33:27 · 4736 阅读 · 0 评论