数据结构与算法
宏玄
这个作者很懒,什么都没留下…
展开
-
计算 x 的 n 次幂函数
计算 x 的 n 次幂函数描述:实现 pow(x, n) ,即计算 x 的 n 次幂函数。示例1:输入: 2.00000, 10输出: 1024.00000示例2:输入: 2.10000, 3输出: 9.26100示例3:输入: 2.00000, -2输出: 0.25000解释: 2^-2 = 1/2^2 = 1/4 = 0.25说明:-100.0 <...原创 2020-04-19 21:59:55 · 5923 阅读 · 0 评论 -
二叉树的最大深度
二叉树的最大深度描述:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。解答:/** * Defini...原创 2020-04-12 21:49:48 · 107 阅读 · 0 评论 -
反转链表
反转链表描述:反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?分析:1.保存反转链表过程中的头部节点;2.将原始头部节点指针指向当前反转链表节点的下一个节点;3.当前反转链表节点的指针指...原创 2020-04-11 23:41:05 · 134 阅读 · 0 评论 -
返回杨辉三角的第 k 行
返回杨辉三角的第 k 行描述:给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 3输出: [1,3,3,1]进阶:你可以优化你的算法到 O(k) 空间复杂度吗?分析:第 i 行的数据是由第 i-1 行的数据算出来的;第 i 行第 j 列的数: $result[$i][$j] = $resu...原创 2020-01-17 17:31:28 · 1180 阅读 · 0 评论 -
杨辉三角
杨辉三角描述:给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。分析:通过在杨辉三角中,每个数是它左上方和右上方的数的和。可知:第i行第j列的数:result[result[result[i][$j] = result[result[result[i - 1][$j - 1] + result[result[r...原创 2020-01-17 16:46:36 · 141 阅读 · 0 评论 -
将整数转换为两个无零整数的和
将整数转换为两个无零整数的和描述:「无零整数」是十进制表示中 不含任何 0 的正整数。给你一个整数 n,请你返回一个 由两个整数组成的列表 [A, B],满足:A 和 B 都是无零整数A + B = n题目数据保证至少有一个有效的解决方案。如果存在多个有效解决方案,你可以返回其中任意一个。示例 1:输入:n = 2输出:[1,1]解释:A = 1, B = 1. A + B...原创 2020-01-12 23:34:24 · 343 阅读 · 0 评论 -
或运算的最小翻转次数
或运算的最小翻转次数描述:给你三个正整数 a、b 和 c。你可以对 a 和 b 的二进制表示进行位翻转操作,返回能够使按位或运算 a OR b == c 成立的最小翻转次数。「位翻转操作」是指将一个数的二进制表示任何单个位上的 1 变成 0 或者 0 变成 1 。示例 1:输入:a = 2, b = 6, c = 5输出:3解释:翻转后 a = 1 , b = 4 , c ...原创 2020-01-12 23:01:00 · 640 阅读 · 0 评论 -
两两交换链表中的节点
两两交换链表中的节点描述:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:给定 1->2->3->4, 你应该返回 2->1->4->3.解答:1.非递归/** * Definition for a singly-linked list. * class Lis...原创 2020-01-10 16:04:27 · 142 阅读 · 0 评论 -
反转字符串
反转字符串描述:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:[“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”]示...原创 2020-01-08 21:13:06 · 134 阅读 · 0 评论 -
斐波那契数列两种解法
数列:1,1,2,3,5,8,13,21,34,55…….,被称为斐波那契数列。 斐波那契数列特点:第一、第二个数为1,从第三个数开始,该值等于其前面两个数之和。本文主要解决计算第N个斐波那契数的值。1. 递归/** * 斐波那契数列 * @param [int] $n [数列第n个数,由0开始算] * @return [int] [数列第n个数的值] */...原创 2018-05-10 12:48:10 · 6164 阅读 · 0 评论