
算法
三斤和他的朋友们
一个PHPer的修行之路。
公众号《三斤和他的喵》欢迎大家关注。
展开
-
算法学习之路----回文数
回文数(Palindrome-Number)这是一个比较简单的题目,题干如下:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1: 输入: 121 输出: true示例 2: 输入: -121 输出: false解释: 从左向右读, 为...原创 2020-04-13 09:46:03 · 357 阅读 · 0 评论 -
算法学习之路----无重复字符的最长子串
无重复字符的最长子串这是 LeetCode 第三题,题干如下:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1: 输入: “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2: 输入:...原创 2020-04-10 17:03:34 · 230 阅读 · 0 评论 -
算法学习之路----两数相加
两数相加(Add-Two-Numbers)这是 LeetCode 的第二题,题目挺常规的,题干如下:给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都...原创 2020-04-09 10:08:52 · 339 阅读 · 0 评论 -
算法学习之路----两数之和
前言工作一段时间之后,最大的感觉就是算法好像没什么用,确实不会算法也能胜任平常的工作,但是总觉得缺了点什么,所以最近抽空复习了以前刷的 Leetcode,希望在这里找到一群志同道合的人:bowtie:。两数之和(Two Sum)这是 LeetCode 的第一题,总体来说是比较简单的,题干如下:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数...原创 2020-04-09 10:07:04 · 226 阅读 · 0 评论 -
最大堆(二)
背景知识:堆是一棵完全二叉树,什么是完全二叉树?就是除了最后一层节点之外,其他层的节点个数必须是最大值,并且最后一层的节点必须都集中在左侧。 堆分为最大堆和最小堆。最大堆就是父节点大于等于子节点,从而导致根节点是最大值。最小堆就是父节点小于等于子节点,从而导致根节点是最小值。本文基于最大堆讲解,并且提供python代码实现。1.在第一节中我们详细讲解了什么是最大堆,以及基于列表这种数据结构...原创 2018-10-11 22:45:29 · 207 阅读 · 0 评论 -
最大堆(一)
背景知识:堆是一棵完全二叉树,什么是完全二叉树?就是除了最后一层节点之外,其他层的节点个数必须是最大值,并且最后一层的节点必须都集中在左侧。 堆分为最大堆和最小堆。最大堆就是父节点大于等于子节点,从而导致根节点是最大值。最小堆就是父节点小于等于子节点,从而导致根节点是最小值。本文基于最大堆讲解,并且提供python代码实现。1.背景知识中提到,堆是一棵完全二叉树,并且最大堆的特点是父节点大...原创 2018-10-11 00:28:51 · 6259 阅读 · 0 评论 -
排序算法之时间复杂度为O(N^2)的算法
背景知识:排序算法算是比较基础的算法了,但是在面试过程中偶尔也会被问到,虽然很多语言都内置了排序函数,例如php的sort函数等等,但是还是有必要聊聊排序算法,这篇文章中将介绍时间复杂度为O(N^2)的几个排序算法。 本文基于从小到大排序讲解。 1.冒泡排序:前一个和后一个比较,如果前一个比后一个大则交换位置,继续向下比较。如果前一个比后一个小则不交换位置,继续向下比较。//冒泡...原创 2018-12-01 19:56:54 · 2779 阅读 · 0 评论 -
算法(一):用数组结构实现固定长度的栈和队列
背景知识:栈的特点就是先进后出,队列的特点就是先进先出。栈的一个重要应用场景就是倒序某一个东西,例如字符串等等。1.使用数组结构实现固定长度的栈:思路比较简单,可以在内部维护一个索引值,通过这个索引值与长度的关系来保证栈结构的长度固定。<?php//栈类class Stack { //栈的长度 private $length; //数组结构,用来保存栈...原创 2018-12-25 11:52:18 · 546 阅读 · 0 评论