随笔分类 -  算法/数据结构

摘要:也就是说,根据字符串来排查重复连续字符串出现的次数+目标字符串,a先出现了三次,那么3a,接着b出现呢三次,3a3b,c连续出现四次。3a3b4c..... 第一种: <?php $str = "aaabbbccccaaddfffffasdffdfdf"; $strlen= strlen($str) 阅读全文
posted @ 2020-07-01 01:05 温柔的风 阅读(446) 评论(0) 推荐(0) 编辑
摘要:问题就是找到字符串里不包括重复字符的最长子字符串。 第一种: <?php $string = "abcdaefaedkqatlmtx"; function test($string){ $len = strlen($string); $arr = []; for ($i = 0; $i <= $le 阅读全文
posted @ 2020-06-30 00:15 温柔的风 阅读(627) 评论(0) 推荐(0) 编辑
摘要:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6(最大子序列:4 -1 2 1 ) 第一种: $arr = [-2,1,-3,4,-1,2,1,-5,4]; funct 阅读全文
posted @ 2020-06-23 12:08 温柔的风 阅读(351) 评论(0) 推荐(0) 编辑
摘要:被百度面试官问到这么一个问题: 有五亿个文件文档,另外还有10万个敏感词,怎么判断这五亿个文件里是否有包含敏感词?.......这个我第一念头真不知道怎么办,最后还是问了面试官,面试官告诉我涉及到了一个算法。那就是AC自动机,我通过百度了一批AC自动机的文章,也大概了解到了它的进化历程......关 阅读全文
posted @ 2020-06-21 21:41 温柔的风 阅读(710) 评论(0) 推荐(0) 编辑
摘要:原理介绍(摘自极客时间): Snowflake的核心思想是将64bit的二进制数字分成若干部分,每一部分都存储有特定含义的数据,比如说时间戳、机器ID、序列号等等,最终生成全局唯一的有序ID。它的标准算法是这样的: 从上面这张图中我们可以看到,41位的时间戳大概可以支撑pow(2,41)/1000/ 阅读全文
posted @ 2020-06-21 19:04 温柔的风 阅读(3675) 评论(0) 推荐(0) 编辑
摘要:垃圾回收,简称gc。顾名思义,就是废物重利用的意思。再说这个之前先接触一下内存泄露,大概意思就是申请了一块地儿拉了会儿屎,拉完后不收拾,那么那块儿地就算是糟蹋了,地越用越少,最后一地全是屎。说到底一句,用了记得还。一定程度上说,垃圾回收机制就是用来擦屁股的。如果用过C语言,那么申请内存的方式是mal 阅读全文
posted @ 2019-06-15 21:19 温柔的风 阅读(219) 评论(0) 推荐(0) 编辑
摘要:短连接的好处 简单方便,利于推广 http传输好了很多,有助于带宽节约和高并发 防止尾巴参数泄密,不安全 大概实现流程 短连接算法(新浪短连接算法),一对四,生成四个链接,随机取出一个 映射匹配(redis的hash或者string),如用hash存储,key=加密串,value=真实url 短链接 阅读全文
posted @ 2018-09-28 20:44 温柔的风 阅读(151) 评论(0) 推荐(0) 编辑
摘要:整体流程 发 抢 记(记录谁抢了多少、防止重复抢、如果红包到期没抢完,需要退回) 红包算法,保证每个红包大致有个范围,大家抢的差不多 需求举例 各种节假日,发红包+抢红包,100%对并发有要求,不能使用mysql 一个总的大红包,会有可能拆分成多个小红包,总金额=分金额1+分金额2....分金额N 阅读全文
posted @ 2018-09-28 16:06 温柔的风 阅读(163) 评论(0) 推荐(0) 编辑
摘要:上面是使用select,下面用普通函数实现 阅读全文
posted @ 2018-09-22 15:37 温柔的风 阅读(732) 评论(0) 推荐(0) 编辑
摘要:二分查找法就是实现在一组有序的数字数组集合中最快找到指定元素的下标 思路 ①先找到中间的下标middle = (leftIndex + RightIndex) /2 ,然后让中间的下标值和FindVal比较a:如果arr[middle] > FindVal,那么就向LeftIndex~(midlle 阅读全文
posted @ 2018-09-13 01:49 温柔的风 阅读(2290) 评论(0) 推荐(0) 编辑
摘要:关于冒泡排序的原理请看本博客这篇文章冒泡排序法原理讲解及PHP代码示例 阅读全文
posted @ 2018-09-12 22:21 温柔的风 阅读(1121) 评论(0) 推荐(0) 编辑
摘要:<?php $arr = array( '0'=>array( 'name'=>'james', 'age'=>30, ), '1'=>array( 'name'=>'susu', 'age'=>26, ), '2'=>array( 'name'=>'james', 'age'=>30, ), 'n 阅读全文
posted @ 2018-06-24 14:53 温柔的风 阅读(848) 评论(0) 推荐(0) 编辑
摘要:输入: ["flower","flow","flight"]输出: "fl"示例 2: 输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。 <?php $a = ["flower","flow","flww","flight"]; function rep 阅读全文
posted @ 2018-05-26 00:16 温柔的风 阅读(373) 评论(0) 推荐(0) 编辑
摘要:二分查找的定义 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。 算法的要求 从上面的定义我们可以知道,满足该算法的要求必须如下两点: 必须采用顺序存储结构。 必须按关键字大小有序排列。 算法 阅读全文
posted @ 2018-02-01 22:55 温柔的风 阅读(337) 评论(0) 推荐(0) 编辑
摘要:常见的数据结构stack、heap、list、doubly-linked-list、queue、array(vector)、map、set、graph Array(数组)最简单而且应用最广泛的数据结构之一特征:使用连续的内存来存储、数组中的所有元素都是相同的类型或类型的衍生(同质数据结构)、元素可以 阅读全文
posted @ 2018-01-05 18:44 温柔的风 阅读(1672) 评论(0) 推荐(0) 编辑
摘要:function array_mer() { $arrays = func_get_args(); //获取当前函数中传递进来的所有参数,也就是所有一维数组 // echo ''; // print_r($arrays); $last_arr = []; //要返回的数组 foreach($arrays as $arr) { ... 阅读全文
posted @ 2018-01-05 15:54 温柔的风 阅读(411) 评论(0) 推荐(0) 编辑
摘要:冒泡排序原理 冒泡排序对一个数组里的数字进行排序,把数组里两个相邻的数比较大小,将值小的数放在前面,把大的数往后面放,当然这种排序是升序,即从小到大。举例说明$array = [64, 56, 31, 68, 6];数组中有五个元素,按照原理说法,再详细说一下做几轮比较和比较的细节。第一轮[64, 阅读全文
posted @ 2017-05-17 15:36 温柔的风 阅读(1376) 评论(0) 推荐(0) 编辑