
leetcode简单
铁面无情哈士奇
希望月入百万
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Leetcode 简单十 实现strStr()
实现strStr():PHP 16ms:此方法的实现可以借助PHP内置函数,strstr或者strpos。本算法最佳解决办法之一为kmp算法,研究了一晚上研究明白之后,最后早上选择了暴力破解。。。haystack与needle错位匹配。时间复杂度O(),空间复杂度O(1).效率较低。后续会优化使用kmp。class Solution { function strStr...原创 2019-02-21 17:03:02 · 211 阅读 · 0 评论 -
Leetcode 简单六 有效的括号
有效的括号:PHP 12ms:本解法选择使用栈实现。首先判断$s[$i]的值是不是左括号,如果是就进栈,不是的话,将$i-1位置的字符出栈,记录出栈的字符并判断是否与$i位置的括号配对,不配对就返回false。时间复杂度O(S),空间复杂度O(n)。class Solution { function isValid($s) { $stack = [];...原创 2019-02-19 23:28:30 · 165 阅读 · 0 评论 -
Leetcode 简单二十三 二叉树的最大深度
二叉树的最大深度:PHP 20ms:递归。/** * Definition for a binary tree node. * class TreeNode { * public $val = null; * public $left = null; * public $right = null; * function __constr...原创 2019-02-25 16:22:00 · 110 阅读 · 0 评论 -
Leetcode 简单七 合并两个有序链表
合并两个有序链表:PHP 20ms:最基本的数据结构操作,这里涉及了一个知识点,深拷贝和浅拷贝。PHP中的对象赋值为浅拷贝,即地址传递。首先新声明一个空单链表$new,把$new浅拷贝给$curr,然后循环判断两个链表的val值大小,如果$l1小于$l2,把$curr->next赋值为$l1,然后把$l1赋值给$curr(意思就是是curr指向l1),然后使$l1指向$l1-&g...原创 2019-02-20 15:32:02 · 95 阅读 · 0 评论 -
Leetcode 简单二十四 二叉树的层次遍历II
二叉树的层次遍历II: php 16ms:广度优先遍历,使用队列。后续会有递归版本。/** * Definition for a binary tree node. * class TreeNode { * public $val = null; * public $left = null; * public $right = null; * ...原创 2019-02-26 00:17:00 · 109 阅读 · 0 评论 -
Leetcode 简单八 删除排序数组中的重复项
删除排序数组中的重复项:PHP 36ms:双指针法,快指针用于遍历,慢指针用于存储。时间复杂度O(n),空间复杂度O(1)。class Solution { function removeDuplicates(&$nums) { if($nums==null){ return []; } ...原创 2019-02-20 16:37:19 · 113 阅读 · 0 评论 -
Leetcode 简单九 移除元素
移除元素:PHP 16ms:双指针法。时间复杂度O(n),空间复杂度O(1)。class Solution { function removeElement(&$nums, $val) { $i=0; for($j = 0;$j < count($nums);$j++){ if($nums[$j]!...原创 2019-02-20 17:35:39 · 170 阅读 · 0 评论 -
Leetcode 简单二十五 将有序数组转换为二叉搜索树
将有序数组转换为二叉搜索树:PHP 84ms:首先创建一个递归的二叉树生成function,然后return就行。核心就在创建二叉树上。由于给定的是一个排序数组,因此使用折半的方式来生成树。测试用例有问题,因为深度优先遍历有三个模式,因此测试用例的答案和实际答案不符合,所以会有一定的不同,但是提交没有问题。/** * Definition for a binary tree n...原创 2019-02-26 21:35:39 · 115 阅读 · 0 评论 -
Leetcode 简单二十九 杨辉三角
杨辉三角:PHP12ms。暴力破解。class Solution { /** * @param Integer $numRows * @return Integer[][] */ function generate($numRows) { $res = [[1],[1,1]]; if($numRows...原创 2019-04-10 22:58:35 · 423 阅读 · 0 评论 -
Leetcode 简单三十 杨辉三角II
杨辉三角II:PHP:12ms,空间14.7m。class Solution { /** * @param Integer $rowIndex * @return Integer[] */ function getRow($rowIndex) { $res = [[1],[1,1]]; if($row...原创 2019-04-12 23:15:47 · 126 阅读 · 0 评论 -
Leetcode 简单二十七 二叉树的最小深度
二叉树的最小深度:php:28ms。递归。/** * Definition for a binary tree node. * class TreeNode { * public $val = null; * public $left = null; * public $right = null; * function __constr...原创 2019-04-09 20:24:07 · 124 阅读 · 0 评论 -
Leetcode 简单二十八 路径总和
路径总和:PHP:28ms。递归。注意:叶子节点为度为0的节点。/** * Definition for a binary tree node. * class TreeNode { * public $val = null; * public $left = null; * public $right = null; * functi...原创 2019-04-09 21:58:33 · 120 阅读 · 0 评论 -
Leetcode 简单三十二 买卖股票的最佳时机II
买卖股票的最佳时机IIPHP:28ms。贪心算法。class Solution { /** * @param Integer[] $prices * @return Integer */ function maxProfit($prices) { $profit = 0; for($i = 0;$...原创 2019-04-16 21:57:32 · 201 阅读 · 0 评论 -
Leetcode 简单三十一 买股票的最佳时机
买股票的最佳时机:PHP:40ms。class Solution { /** * @param Integer[] $prices * @return Integer */ function maxProfit($prices) { if(count($prices) == 0) return 0; ...原创 2019-04-14 23:18:57 · 123 阅读 · 0 评论 -
Leetcode 简单三十四 746.使用最小花费爬楼梯
使用最小花费爬楼梯:动态规划:php,24ms。状态转移方程:$dp[$i] = min($dp[$i-1]+$cost[$i-1],$dp[$i-2]+$cost[$i-2]);题目奇葩,不做赘述。注意的一点是,dp数组要比cost长一位。class Solution { /** * @param Integer[] $cost * ...原创 2019-05-30 19:01:57 · 128 阅读 · 0 评论 -
Leetcode 简单十四 198.打家劫舍
打家劫舍:动态规划:php,8ms。状态转移方程:$dp[$i] = max($dp[$i-2]+$nums[$i],$dp[$i-1]);情况一,当前这一家的钱不能偷,最大的就是截止到上一家偷到的总金额 情况二,当前可以偷,那就是上上家偷到的总金额加上这家的钱nums[i]ps :题目没有说明只能隔一家,所以只计算奇数和偶数是错误的。class Solu...原创 2019-05-29 16:10:26 · 138 阅读 · 0 评论 -
Leetcode 简单五 最长公共前缀
最长公共前缀:PHP 20ms:水平扫描法。先判断$strs是否为空或者长度是否为1.接下来取出$strs的第一个元素作为基准元素与剩余其他的元素对比。$curr与后一个对比,累加出最大公共子串,接下来用$str与再后一个对比,如此反复。时间复杂度为O(S),s为$ctrs[0]的长度。class Solution { function longestCommonPref...原创 2019-02-19 20:50:39 · 115 阅读 · 0 评论 -
Leetcode 简单四 罗马数字转整数
罗马数字转整数:PHP 76ms:核心思想为哈希表操作。PHP的具体表现为关联数组。把基本数据和6大特殊数据类型何其对应的数据设为关联数组,判断是否存在并累加即可。时间复杂度O(n),空间复杂度为O(1)。class Solution { function romanToInt($s) { $num = 0; $romanList ...原创 2019-02-19 20:49:06 · 135 阅读 · 0 评论 -
Leetcode 简单三 回文数
回文数:PHP 128ms:直接使用strrev方法来判断,除去函数本身的时空复杂度,时间复杂度为O(1)空间复杂度为O(1)。class Solution { function isPalindrome($x) { return $x==strrev($x)?true:false; }}其他方法为数组操作,效率较低。...原创 2019-02-19 20:46:37 · 132 阅读 · 0 评论 -
Leetcode 简单十一 搜索插入位置
搜索插入位置:PHP 28ms:少量数据可直接暴力破解,本算法优选二分法。关键点计算中间下标的方法,$begin + ($end-$begin)/2 否则会出现死循环。时间复杂度O(),空间复杂度为O(1)。class Solution { /** * @param Integer[] $nums * @param Integer $target...原创 2019-02-21 19:39:50 · 117 阅读 · 0 评论 -
Leetcode 简单十二 报数
报数:PHP 16ms:饶舌的题目嘻哈的程序员。本题解法使用递归。class Solution { /** * @param Integer $n * @return String */ function countAndSay($n) { if($n == 1){ return '1'; ...原创 2019-02-22 01:29:20 · 278 阅读 · 0 评论 -
Leetcode 简单二十六 平衡二叉树
平衡二叉树:PHP 48ms:用的双重递归,解题思路还不是很清晰,之后会重新过一遍。/** * Definition for a binary tree node. * class TreeNode { * public $val = null; * public $left = null; * public $right = null; ...原创 2019-02-27 14:49:35 · 111 阅读 · 0 评论 -
Leetcode 简单十三 53.最大子序和
最大子序和:前缀和算法:php,32ms。class Solution { /** * @param Integer[] $nums * @return Integer */ function maxSubArray($nums) { $re = $nums[0]; $sum = 0; ...原创 2019-02-23 03:08:32 · 133 阅读 · 0 评论 -
Leetcode 简单十四 最后一个单词的长度
最后一个单词的长度:PHP 12ms:打败100%。栈操作。class Solution { /** * @param String $s * @return Integer */ function lengthOfLastWord($s) { $arr = explode(' ',$s); $pop...原创 2019-02-23 14:27:50 · 112 阅读 · 0 评论 -
Leetcode 简单十五 加一
加一:PHP 12ms:100%。class Solution { /** * @param Integer[] $digits * @return Integer[] */ function plusOne($digits) { $carry = 1; $re[0] = 0; $le...原创 2019-02-23 15:17:50 · 146 阅读 · 0 评论 -
Leetcode 简单十六 二进制求和
二进制求和:PHP 32ms:class Solution { /** * @param String $a * @param String $b * @return String */ function addBinary($a, $b) { $str1 = strrev($a); $str2...原创 2019-02-23 16:15:47 · 197 阅读 · 0 评论 -
Leetcode 简单17 x的平方根
x的平方根:PHP 24ms:牛顿迭代法,公式为(n + x/n)/2class Solution { /** * @param Integer $x * @return Integer */ function mySqrt($x) { $n = 1; while(!(pow($n,2) <= ...原创 2019-02-23 23:51:53 · 168 阅读 · 0 评论 -
Leetcode 简单十八 爬楼梯
爬楼梯:PHP 12ms:100%。斐波那契数列。递归超时,循环输出:class Solution { /** * @param Integer $n * @return Integer */ function climbStairs($n) { // 斐波那契超时 // 循环 $...原创 2019-02-24 12:10:58 · 113 阅读 · 0 评论 -
Leetcode 简单十九 删除排序链表中的重复元素
删除排序链表中的重复元素:PHP 16ms:/** * Definition for a singly-linked list. * class ListNode { * public $val = 0; * public $next = null; * function __construct($val) { $this->val = $va...原创 2019-02-24 14:18:52 · 115 阅读 · 0 评论 -
Leetcode 简单二十 合并两个简单数组
合并两个简单数组:PHP 16ms:class Solution { /** * @param Integer[] $nums1 * @param Integer $m * @param Integer[] $nums2 * @param Integer $n * @return NULL */ funct...原创 2019-02-24 15:02:25 · 194 阅读 · 0 评论 -
Leetcode 简单一 两数之和
两数之和PHP 2220ms:暴力解法,循环遍历$nums数组,用$target减去当前遍历到的数组元素,用所获得的值比较后一个值是否相等,并返回。时间复杂度O(),空间复杂度O(1)class Solution { function twoSum($nums, $target) { for($i=0;$i<count($nums);$i++){ ...原创 2019-02-19 13:15:33 · 150 阅读 · 0 评论 -
Leetcode 简单二十一 相同的树
相同的树: PHP 12ms:递归判断。还有个也是12ms的,用的是直接判断,这尼玛是什么玩意儿。。。/** * Definition for a binary tree node. * class TreeNode { * public $val = null; * public $left = null; * public $right = ...原创 2019-02-24 22:24:36 · 90 阅读 · 0 评论 -
Leetcode 简单二十二 对称二叉树
对称二叉树:PHP 16ms:100%。用上一题进行递归,位置换一下就行。/** * Definition for a binary tree node. * class TreeNode { * public $val = null; * public $left = null; * public $right = null; * f...原创 2019-02-24 23:33:15 · 102 阅读 · 0 评论 -
Leetcode 简单二 整数反转
整数反转:PHP 28ms:首先设定数值范围,要处理的字符串数值在到之间,如果测试用例为正,使用strrev反转字符串,测试用例为负,取绝对值反转然后*-1.时间复杂度为O(1),空间复杂度为O(1)。class Solution { function reverse($x) { $po = pow(2,31); $ppo = pow(...原创 2019-02-19 20:44:52 · 140 阅读 · 0 评论 -
Leetcode 简单三十五 303.区域和检索 - 数组不可变
区域和检索-数组不可变动态规划:PHP,80msclass NumArray { /** * @param Integer[] $nums */ private $sum = []; function __construct($nums) { $this->$sum[0] = 0; for($i =...原创 2019-07-16 22:15:57 · 228 阅读 · 0 评论