算法
文章平均质量分 74
IT__init__
这个作者很懒,什么都没留下…
展开
-
剑指offer第三天 offer_07 重建二叉树
剑指 Offer 07. 重建二叉树输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7二叉树前序遍历思想:根节点、左节点、右节点二叉树中序遍历思想:左节点、根节点、右节点######我的解题思想:前序遍历中,原创 2020-09-17 19:57:09 · 144 阅读 · 0 评论 -
第二天刷剑指offer 05_offer 剑指 Offer 05. 替换空格
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = “We are happy.”输出:“We%20are%20happy.”限制:0 <= s 的长度 <= 10000来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解题思路:使用StringBuilder类,创建字符序列对象,遍历字原创 2020-09-16 15:59:27 · 81 阅读 · 0 评论 -
接着刷剑指 Offer 04. 二维数组中的查找
剑指 Offer 04. 二维数组中的查找剑指 Offer 04. 二维数组中的查找在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[[1, 4, 7, 11, 15],[2, 5, 8, 12, 19],[3, 6, 9, 16, 22],[10, 13, 14, 17, 24],[18, 21, 2原创 2020-09-15 20:55:28 · 94 阅读 · 0 评论 -
剑指offer第一天 offer 03 数组中重复的数
找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3限制:2 <= n <= 100000来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/shu-zu-zhong-zhong-fu-de-shu-原创 2020-09-15 15:42:36 · 81 阅读 · 0 评论 -
边学边刷leetcode第三题
###给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。###题目:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。####示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3作者:kerwi原创 2020-08-11 23:38:50 · 137 阅读 · 0 评论 -
递归算法——菲波那契
#递归是指函数/过程/子程序在运行过程序中直接或间接调用自身而产生的重入现象。在计算机编程里,递归指的是一个过程:函数不断引用自身,直到引用的对象已知。使用递归解决问题,思路清晰,代码少。但是在主流高级语言中(如C语言、Pascal语言等)使用递归算法要耗用更多的栈空间,所以在堆栈尺寸受限制时(如嵌入式系统或者内核态编程),应避免采用。所有的递归算法都可以改写成与之等价的非递归算法。(来源于百度,看不懂正常,术语就是不说人话)###菲波那契数列:斐波那契数列指的是这样一个数列 1, 1, 2, 3原创 2020-08-11 23:36:32 · 259 阅读 · 0 评论 -
学习八大排序算法——冒泡排序
今天去回顾了一下八大排序——冒泡排序冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端。冒泡排序的核心思想是相邻的两个数据进行比较,假设数列A有n个数据,先比较第1个和第2个数据,如果A1 > A2,则交换他们的位置,确保较大的那个数在右侧。接下来比较A2和A3,原创 2020-08-11 23:35:58 · 145 阅读 · 0 评论 -
学习八大排序算法——插入排序
###今日回顾之——插入排序插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uvPCkWLE-1597160107020)(/media/editor/insertionSort_20200515105415580652.gif)]直接插入排序的思想:当插入第i(i>=1)个元素时,前面的arr原创 2020-08-11 23:35:25 · 78 阅读 · 0 评论 -
刚开始学习贪心算法启蒙
#贪心算法(Greedy Algorithm)贪心算法(Greedy Algorithm) 简介贪心算法,又名贪婪法,是寻找最优解问题的常用方法,这种方法模式一般将求解过程分成若干个步骤,但每个步骤都应用贪心原则,选取当前状态下最好/最优的选择(局部最有利的选择),并以此希望最后堆叠出的结果也是最好/最优的解。{看着这个名字,贪心,贪婪这两字的内在含义最为关键。这就好像一个贪婪的人,他事事都想要眼前看到最好的那个,看不到长远的东西,也不为最终的结果和将来着想,贪图眼前局部的利益最大化,有点走一步看一步的原创 2020-08-11 23:34:45 · 270 阅读 · 0 评论 -
七大查找算法启蒙学习
####七大查找算法(要老命)[每天清晨起来给自己打个气,你可以!!!你最胖!!!]1.顺序查找2. 二分查找3. 插值查找4. 斐波那契查找5. 树表查找6. 分块查找7. 哈希查找查找是在大量的信息中寻找一个特定的信息元素,在计算机应用中,查找是常用的基本运算,例如编译程序中符号表的查找。本文简单概括性的介绍了常见的七种查找算法,说是七种,其实二分查找、插值查找以及斐波那契查找都可以归为一类——插值查找。插值查找和斐波那契查找是在二分查找的基础上的优化查找算法。树表查找和哈希查找会在后原创 2020-08-11 23:32:09 · 160 阅读 · 0 评论