
每日一题
坚持坚持!
- 叫我菜鸟
这个作者很懒,什么都没留下…
展开
-
判断数组是否存在重复元素
此题来自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 · 1956 阅读 · 0 评论 -
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 · 1874 阅读 · 0 评论 -
数组中同一元素出现的次数
<?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 · 141 阅读 · 0 评论 -
查找重复的电子邮箱
此题来自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 · 167 阅读 · 0 评论 -
第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 · 166 阅读 · 0 评论 -
斐波那契数列
斐波那契数列指的是这样一个数列: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 · 242 阅读 · 0 评论 -
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 · 133 阅读 · 0 评论 -
MySql求第二高薪水
此题来自leetcode编写一个 SQL 查询,获取Employee表中第二高的薪水(Salary)+----+--------+| Id | Salary |+----+--------+| 1 | 100 || 2 | 200 || 3 | 300 |+----+--------+例如上述Employee表,SQL查询应该返回200作为第二高的薪水。如果不存在第二高的薪水,那么查询应返回null+------------------...原创 2021-07-29 16:45:32 · 442 阅读 · 0 评论 -
希尔排序算法
目录原理图解代码原理希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序,同时该算法是冲破O(n2)的第一批算法之一。它与插入排序的不同之处在于,它会优先比较距离较远的元素希尔排序是按照不同步长对元素进行插入排序,当刚开始元素很无序的时候,步长最大,所以插入排序的元素个数很少,速度很快;当元素基本有序了,步长很小,插入排序对于有序的序列效率很高分组 缩小增量 直接插入图解代码<?phpf...原创 2021-07-23 16:40:50 · 126 阅读 · 0 评论 -
直接插入排序
目录原理代码原理将待排序序列分成两个序列,前面的序列保持有序,依次选取后面的序列的元素,在前面的序列中进行插入 最初,选择第一个元素默认为有序序列 设置一个哨兵(临时变量),保存要插入的元素 插入数据,数据从有序序列的末尾开始比较,如果大于哨兵(临时变量),将当前数据向后移动一位.直到碰到比哨兵(临时变量)小的数据,就把临时变量插入到比它小的数据后面. 循环执行代码<?php$arr = [10,5,6,87,8,9];insertSort($arr);va..原创 2021-07-21 15:09:35 · 109 阅读 · 0 评论 -
选择排序算法
人生当中成功只是一时的,失败却是主旋律。但是如何面对失败,却把人分成了不同的样子,有的人会被失败击垮,有的人能不断的爬起来继续向前...我想真正的成熟应该并不是追求完美,而是直面自己的缺憾,这才是生活的本质...原创 2021-07-20 15:43:33 · 95 阅读 · 0 评论 -
快速排序算法
原理 比较相邻的元素。如果第一个比第二个大,就交换他们两个 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数 针对所有的元素重复以上的步骤,除了最后一个 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较 代码优化...原创 2021-07-20 11:55:30 · 298 阅读 · 0 评论 -
冒泡排序算法
目录题目描述代码原理 比较相邻的元素。如果第一个比第二个大,就交换他们两个 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数 针对所有的元素重复以上的步骤,除了最后一个 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较 代码<?phpfunction bubbleSort($arr) { $n = count($arr); for($i=0; $i&l..原创 2021-07-14 22:43:51 · 116 阅读 · 0 评论 -
三数之和(等于0)
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档目录系列文章目录文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结文章目录系列文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言提示:这里可以添加本文要记录原创 2021-07-13 16:50:51 · 592 阅读 · 0 评论 -
回文数,拿来吧你
此题来自力扣9.回文数目录解题思路首先,看到之后有两种思路,一种就是把数字转换为字符串然后全部反转,反转后数字和原始数字比较,如果相等,那就是回文数.第二种就是反转一半长度的数字,然后去跟另外一半数字对比,看是否相同. 举例说明一下:数字: x = 12321, 因为其的一半反转数字为123 (下面解释为什么是123, 不是12)负数直接返回false 结尾是0的(除了0以外),也就是 (x%10=0且x!=0),因为结尾是0,反转之后第一个数字为0,显然是错误的.返回false.原创 2021-07-12 16:00:55 · 165 阅读 · 0 评论 -
无重复字符的最长子串(滑动窗口)
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 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 · 197 阅读 · 0 评论