数据结构+算法
文章平均质量分 52
数据结构+算法
猫哥说
IT男
展开
-
416. 分割等和子集
给你一个 只包含正整数 的 非空 数组 nums。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。原创 2023-03-26 21:49:12 · 48 阅读 · 0 评论 -
62. 不同路径
机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。dp[i][j] :表示从(0 ,0)出发,到(i, j) 有dp[i][j]条不同的路径。dp[i][j]由两条路径而来,dp[i-1][j]和dp[i][j-1]dp[0][j] 和dp[i][0],只有一条路可达,因此初始化值1。从左到右遍历,最后求得dp[m-1][n-1]问总共有多少条不同的路径?原创 2023-03-23 20:43:58 · 46 阅读 · 0 评论 -
746. 使用最小花费爬楼梯
给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。算最低花费则:min(dp[i-1]+cost[i-1], dp[i-2]+cost[i-2])选择从下标为 0 或下标为 1 的台阶开始爬楼梯,说明dp[0]=dp[1]=0不花费任何体力。首先确定动态规划推到公式:dp[i]表示到达第i个台阶需要花费的最少体力dp[i]你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。原创 2023-03-22 22:57:20 · 70 阅读 · 0 评论 -
455. 分发饼干
参考链接:https://leetcode.cn/problems/assign-cookies/description/原创 2023-03-20 23:01:53 · 162 阅读 · 0 评论 -
654. 最大二叉树
给定一个不重复的整数数组 nums。最大二叉树 可以用下面的算法从 nums 递归地构建:创建一个根节点,其值为 nums 中的最大值。递归地在最大值 左边 的 子数组前缀上 构建左子树。递归地在最大值 右边 的 子数组后缀上 构建右子树。返回 nums 构建的 最大二叉树。原创 2023-03-06 19:58:41 · 317 阅读 · 0 评论 -
算法——给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
1、题目: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1] 输出: 1 示例 2: 输入: [4,1,2,1,2] 输出: 4 2、解法 第一种:暴力法 第二种:使用异或运算来解决,相同的元素异或计算后为0,以示例1为例(简化以8位来存储),s的二进制位0000 0010,nums[1]=0000 0010,异或后s=0000 0000,再原创 2020-08-08 09:54:29 · 5766 阅读 · 0 评论 -
斐波拉契数列解法
1、题目 题目:力扣 70: 爬楼梯:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 2、解法 第一种:递归法直接求解 存在超时问题 时间复杂度为O(2^n) class Solution { public: int climbStairs(int n) { if(n==1 || n==2) return n; return climbStairs(n-1)+cli原创 2020-08-04 23:02:50 · 247 阅读 · 0 评论