+ LeetCode
算法与数据结构
_earnest
后端工程师
展开
-
PHP算法之归并排序、堆排序、快速排序、插入排序、选择排序、冒泡排序
常数阶:O(1) 线性阶:O(n) 平(立)方阶:O(n^2)/O(n^3) 特殊平方阶:O(n^2/2+n/2)->O(n^2) 对数阶:O(log2n) while($n>=1){ $n=$n/2 } nlog2n阶,指数阶原创 2021-04-25 00:10:01 · 272 阅读 · 0 评论 -
PHP使用链表实现两数相加
实例:输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.代码:/** * Definition for a singly-linked list. * class ListNode { * public $val = 0; * public $next = null; * function __construct($val = 0, $next = null) { * $thi原创 2021-08-03 23:55:13 · 200 阅读 · 0 评论 -
杨辉三角 【动态规划法】
在杨辉三角中,每个数是它左上方和右上方的数的和输入: 5输出:[[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]算法1class Solution { /** * @param Integer $numRows * @return Integer[][] */ function generate($numRows) { $res = []; for($i=0;$i<原创 2021-07-16 22:19:22 · 417 阅读 · 0 评论 -
重 塑 矩 阵
给出一个由二维数组表示的矩阵,以及两个正整数r和c,分别表示想要的重构的矩阵的行数和列数。重构后的矩阵需要将原始矩阵的所有元素以相同的行遍历顺序填充。输入:nums =[[1,2],[3,4]]r = 1, c = 4输出:[[1,2,3,4]]解释:行遍历nums的结果是 [1,2,3,4]。新的矩阵是 1 * 4 矩阵, 用之前的元素值一行一行填充新矩阵。算法一class Solution { /** * @param Integer[][] $mat原创 2021-07-16 21:45:36 · 175 阅读 · 0 评论 -
买卖股票的最佳时机是什么时候?动态规划
在某一天选择买入一只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。示例 :输入:[7,1,5,3,6,4]输出:5解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。思路:假设第1天买入,利润为0,第2天的价格减去第1天的价格当大于0时为利润记作$profits,当第二天的价格比第1天的价格低时,买原创 2021-07-14 22:20:13 · 153 阅读 · 0 评论 -
计算两个数组的交集 哈希算法 + 双指针法
给定两个数组,编写一个函数来计算它们的交集示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2,2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[4,9]哈希算法实现class Solution { /** * @param Integer[] $nums1 * @param Integer[] $nums2 * @return Integer[]原创 2021-07-08 00:01:25 · 179 阅读 · 2 评论