- 博客(36)
- 收藏
- 关注
原创 Redis管道符(pipeline)
管道符<?php/** * Class AutofelixRedis. * pipeline管道命令 * 正常的命令是一条命令经过一次网络传输,传输一次就会有一次延迟,大量的命令多的话就会消耗大量的时间,延迟变高 * 管道命令是将命令存储在redis客户端,由管道统一执行,统一返回结果.减少客户端与服务端的通信次数,减少IO调用次数 * 管道要求一次性返回全部结果,所以在服务端将结果缓存起来,当数据量多得时候,会对redis服务器内存产生影响,造成较大压力.不支持原子性(没有规定必须全
2021-10-24 12:56:01 2474 1
原创 下载图片到指定文件夹
代码中解释说明<?php/** * 要下载图片的url * @param $file_url * 要保存到的地址 xxx.jpg * @param $save_to * 保存图片到 指定的文件下 * *///function dlfile($file_url, $save_to)//{// $ch = curl_init();// curl_setopt($ch, CURLOPT_POST, 0);// curl_setopt($ch, CU.
2021-09-28 10:03:19 448
原创 判断数组是否存在重复元素
此题来自217.存在重复元素题目给定一个整数数组,判断是否存在重复元素。如果存在一值在数组中出现至少两次,函数返回true。如果数组中每个元素都不相同,则返回false示例1输入: [1,2,3,1]输出: true示例2输入: [1,2,3,4]输出: false示例3输入: [1,1,1,3,3,4,3,2,4,2]输出: true题解一1. 给数组进行排序2. 判断数组中相邻的数据是否相等,如果相等说明有重复.返回true3. 如果到循...
2021-09-13 17:23:32 1895
原创 Sql 六亿数据表和三亿数据表关联查找中间的数据
题一个6亿的表a,一个3亿的表b,通过外间tid关联,你如何最快的查询出满足条件的第500000到第502000中的这2000条数据记录1、如果A表TID是自增长,并且是连续的,B表的ID为索引select * from a,b where a.tid = b.id and a.tid>500000 limit 2000;2、如果A表的TID不是连续的,那么就需要使用覆盖索引.TID要么是主键,要么是辅助索引,B表ID也需要有索引。select * from b , (
2021-09-10 13:27:01 410
原创 Sql分数排名
此题来自leetcode编写一个 SQL 查询来实现分数排名如果两个分数相同,则两个分数排名(Rank)相同。请注意,平分后的下一个名次应该是下一个连续的整数值。换句话说,名次之间不应该有“间隔” Id Score 1 3.50 2 3.65 3 4.00 4 3.85 5 4.00 6
2021-08-06 22:29:52 1832
原创 数组中同一元素出现的次数
<?php$arr = [1,25,8,6,2,5,3,6,5,2,1];// 方法一// array_count_values($arr); // 方法二$newArr = [];foreach($arr as $k=>$v) { if(empty($newArr[$v])){ $newArr[$v] = 1; }else{ $newArr[$v]++; } if($newArr[$v] > 1) {
2021-08-03 17:40:08 129
原创 查找重复的电子邮箱
此题来自leetcode 182.编写一个 SQL 查询,查找Person表中所有重复的电子邮箱示例: Id Email 1 a@b.com 2 c@d.com 3 a@b.com 根据以上输入,你的查询应返回以下结果: Email a@b.com SQL:1..
2021-08-03 17:34:09 150
原创 第N高的薪水
此题来自leetcode 177.编写一个 SQL 查询,获取Employee表中第n高的薪水(Salary) Id Salary 1 100 2 200 3 300 例如上述Employee表,n = 2时,应返回第二高的薪水200。如果不存在第n高的薪水,那么查询应返回null getNthHighestSalary(2) 200 个人认为在成绩排名等问题中可以先考虑...
2021-08-02 16:45:16 152
原创 斐波那契数列
斐波那契数列指的是这样一个数列:0、1、1、2、3、5、8、13、21、34代码解释:<?php/** * @param $n * @return int * 1. * 斐波那契数列 * 每次都要计算,所以每个f(n)都可能被计算两次,大量重复计算 * 时间复杂度 : O(2^n) 2的n次方,指数级别,爆炸 慢 * 把 f(n) 想做一个状态 n,这个状态n是由状态n - 1和状态n - 2相加转移而来,这就叫状态转移方程 */function fib1($n){
2021-08-02 13:34:07 222
原创 MySql超过经理收入的员工
此题来自leetcodeEmployee表包含所有员工,他们的经理也属于员工。每个员工都有一个 Id,此外还有一列对应员工的经理的 Id Id Name Salary ManagerId 1 Joe 70000 3 2 Henry 80000 4 3 Sam 60000..
2021-08-02 13:13:01 120
原创 MySql求第二高薪水
此题来自leetcode编写一个 SQL 查询,获取Employee表中第二高的薪水(Salary)+----+--------+| Id | Salary |+----+--------+| 1 | 100 || 2 | 200 || 3 | 300 |+----+--------+例如上述Employee表,SQL查询应该返回200作为第二高的薪水。如果不存在第二高的薪水,那么查询应返回null+------------------...
2021-07-29 16:45:32 415
原创 希尔排序算法
目录原理图解代码原理希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序,同时该算法是冲破O(n2)的第一批算法之一。它与插入排序的不同之处在于,它会优先比较距离较远的元素希尔排序是按照不同步长对元素进行插入排序,当刚开始元素很无序的时候,步长最大,所以插入排序的元素个数很少,速度很快;当元素基本有序了,步长很小,插入排序对于有序的序列效率很高分组 缩小增量 直接插入图解代码<?phpf...
2021-07-23 16:40:50 87
原创 直接插入排序
目录原理代码原理将待排序序列分成两个序列,前面的序列保持有序,依次选取后面的序列的元素,在前面的序列中进行插入 最初,选择第一个元素默认为有序序列 设置一个哨兵(临时变量),保存要插入的元素 插入数据,数据从有序序列的末尾开始比较,如果大于哨兵(临时变量),将当前数据向后移动一位.直到碰到比哨兵(临时变量)小的数据,就把临时变量插入到比它小的数据后面. 循环执行代码<?php$arr = [10,5,6,87,8,9];insertSort($arr);va..
2021-07-21 15:09:35 100
原创 选择排序算法
人生当中成功只是一时的,失败却是主旋律。但是如何面对失败,却把人分成了不同的样子,有的人会被失败击垮,有的人能不断的爬起来继续向前...我想真正的成熟应该并不是追求完美,而是直面自己的缺憾,这才是生活的本质...
2021-07-20 15:43:33 84
原创 快速排序算法
原理 比较相邻的元素。如果第一个比第二个大,就交换他们两个 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数 针对所有的元素重复以上的步骤,除了最后一个 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较 代码优化...
2021-07-20 11:55:30 286
原创 冒泡排序算法
目录题目描述代码原理 比较相邻的元素。如果第一个比第二个大,就交换他们两个 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数 针对所有的元素重复以上的步骤,除了最后一个 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较 代码<?phpfunction bubbleSort($arr) { $n = count($arr); for($i=0; $i&l..
2021-07-14 22:43:51 104
原创 三数之和(等于0)
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档目录系列文章目录文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结文章目录系列文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言提示:这里可以添加本文要记录
2021-07-13 16:50:51 554
原创 回文数,拿来吧你
此题来自力扣9.回文数目录解题思路首先,看到之后有两种思路,一种就是把数字转换为字符串然后全部反转,反转后数字和原始数字比较,如果相等,那就是回文数.第二种就是反转一半长度的数字,然后去跟另外一半数字对比,看是否相同. 举例说明一下:数字: x = 12321, 因为其的一半反转数字为123 (下面解释为什么是123, 不是12)负数直接返回false 结尾是0的(除了0以外),也就是 (x%10=0且x!=0),因为结尾是0,反转之后第一个数字为0,显然是错误的.返回false.
2021-07-12 16:00:55 145
原创 无重复字符的最长子串(滑动窗口)
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s = “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: s = “bbbbb”输出: 1-解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: s = “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的长度,“pwke” 是一个
2021-07-07 22:22:21 172
原创 MYSQL:The user specified as a definer (‘skip-grants user‘@‘skip-grants host‘) does not exist
MYSQL权限问题CREATE DEFINER=root@localhost PROCEDURE demo()
2021-07-06 14:17:41 696
原创 Redis缓存雪崩、缓存击穿、缓存穿透
redis.php<?php// 一个单例模式连接数据库文件require_once "./single.php";/** * Class Redisavalanche * 缓存雪崩 (大量的redis在同一时间全部失效了,导致大量请求打到关系型数据库中) * 解决办法: * set设置redis的时候,加随机时间值,保证大量的redis不会同一时间失效(见 randomTime) * 设置双缓存策略,就像下面方法avalanche中一样 */class Redisavala
2021-07-05 08:44:34 112
原创 事务四大特征:(原子性、一致性、隔离性、持久性)
事务四大特征原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持久性(Durability)原子性(Atomicity)原子性是指事务是一个不可分割的工作单位, 事务中的操作要么都执行, 要么都不执行一致性(Consistency)一致性是指事务开始前和结束后, 数据库的完整性约束没有被破坏, 代表了底层数据存储的完整性隔离性(Isolation)多个事务并发访问时,事务之间是隔离的,一个事务不应该影响其它事务运行效果, 意味着事务必须在不干扰其他进程或事务
2021-06-30 09:35:51 2208
原创 form表单追加
html追加表单直接在代码中解释, 追加其他也是一样的道理<!doctype html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-
2021-06-25 09:26:50 486
原创 冒泡排序和快速排序
数组排序1.冒泡排序实现过程代码2.快速排序实现过程代码1.冒泡排序实现过程冒泡排序法应该是排序中最常见的一种了,它的实现就是比较两个相邻的元素,如果前面的元素比后面的元素大,那就交换元素. 之后再去比较接下来的两个相邻的元素,一直到结束.此时第一轮查找结束后,会找到整个数组中元素最大的并且在数组的末尾.依次循环找到数组中第二大的元素,第三大,第四……代码/*** PHP*/function bubble_sort($arr){ // 取数组长度 $count = co
2021-06-23 11:19:27 88
原创 二分法查找
二分法什么是二分查找二分查找也就是折半查找,要求要查找的序列必须是有序的. 将要查找的值与序列中间键的值对比,如果要查找的值小于中间键对应的值,那就在索引 (0-中间键) 之间再去取它们之间的中间键,一直取到相等的值. 如果要查找的值大于中间键对应的值,那就在索引 (中间键-序列长度-1) 中取中间键,其余跟上面一样(力扣 704.二分查找)给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标
2021-06-16 09:58:37 480
原创 php取文件扩展名
取文件后缀名pathinfo<?php $file = '20210527.log'; // pathinfo第二个参数 默认不填的话返回下面四个 // PATHINFO_DIRNAME - 只返回 dirname 目录路径 // PATHINFO_BASENAME - 只返回 basename 文件名 // PATHINFO_EXTENSION - 只返回 extension 扩展名 // PATHINFO_FILENAME - 只返回 filename 不包含后缀的文件名
2021-05-27 10:14:07 473 4
原创 求字符串第一次出现的位置
字符串第一次出现的位置(strpos)题给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 -1 。说明当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。对于本题而言,当 needle 是空字符串时我们应当返回 0 。这与 C 语言的 strstr() 以及 Java 的 indexOf() 定义相符。示例输入:haystack =
2021-05-26 22:16:47 3480
原创 合并两个排序的链表
合并两个排序的链表题目:输入两个递增排序的链表, 合并这两个链表并使新链表中的节点仍然是递增排序的.示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4限制:0 <= 链表长度 <= 1000题解1/** * Definition for a singly-linked list. * class ListNode { * public $val = 0; * p
2021-05-24 17:33:06 252
原创 两数之和
返回两数之和的Key给定一个整数数组 nums 和一个整数目标值 target, 请你在该数组中找出 和为目标值 的那两个整数, 并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例: 输入:nums = [2,7,11,15], target = 9 输出:[0,1] 解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 输入:nums = [3,2,4], target = 6
2021-05-13 16:55:40 95
原创 windows下安装多个MySQL
安装MySQL1.首先去下载MySQL 连接:MySQL官网按照顺序下载就好了,因为我使用phpstudy安装的服务,所以就直接忽略安装过程,同理第二个MySQL也是一样的下载安装完成之后可以给两个MySQL设置不同的服务名称在cmd中找到MySQL安装目录下bin目录D:\phpstudy_pro\Extensions\MySQL8.0.12\bin> // mysql5.7就是配置的服务名D:\phpstudy_pro\Extensions\MySQL5.7.26\bi
2021-04-14 15:12:34 185
原创 php写入log日志的类
// 调用时可以 BLogger::setPlatform('xxx') 来设置文件名等信息class BLogger{ private static $snsPlatform; // ins public static function setPlatform($value) { self::$snsPlatform = $value; } public static function __callStatic($name, $argumen
2021-02-02 15:41:43 238
原创 Mysql Insert into + select插数据
在最近的存储过程中,看到这样一段sql语句INSERT INTO mst_object_production ( OBJ_ID, PAGE_ID, OBJ_TYPE, DISPLAY_IMAGE, DISPLAY_TEXT ) SELECT OBJ_ID, PAGE_ID, OBJ_TYPE, DISPLAY_IMAGE, DISP
2020-11-27 14:37:48 6235
原创 Every derived table must have its own alias(sql错误)
Every derived table must have its own alias 汉语意思为 每个派生表必须有自己的别名.原因:当我们多表查询时或者出现派生表时可能会出现这样的错误,给表添加一个别名就好了举例:在sql语句的结尾给派生表添加一个别名即可sql : select count(*) from (select * from mst_object a LEFT JOIN mst_code b on a.OBJ_TYPE=b.CODE where a.PAGE_ID='..
2020-11-19 13:56:16 1318
原创 图床及管理工具PicGo
这里写自定义目录标题欢迎使用Markdown编辑器图床是什么使用合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器图床是什么简单通俗的说,图床就是一个在网络上存储图片的地方,为了节约本地资源,图片可以外链。
2020-11-19 09:52:49 6274
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人