力扣118,1920题解

记录

2525.5.6

题目:

思路:

用一个二维数组dp[numRows][numRows]保存每一次动态规划的结果

1.令dp[0][0]=1(第一列)

2.找规律

3.得到如下规律(以下情况均为列数大于1)

if(col==0){

dp[row][col]=1

} else {

dp[row][col]=dp[row-1][col-1]+dp[row-1][col]

}

代码:

java 复制代码
class Solution {
    public List<List<Integer>> generate(int numRows) {
		List<List<Integer>> result=new ArrayList<List<Integer>>();
		int[][] dp=new int[numRows][numRows];
		dp[0][0]=1;
		for (int i = 1; i < numRows; i++) {
			for (int j = 0; j <=i; j++) {
				if(j==0)dp[i][j]=1;
				else dp[i][j]=dp[i-1][j-1]+dp[i-1][j];
			}
		}
		for (int i = 0; i < dp.length; i++) {
			List<Integer> tmp=new ArrayList<>();
			for (int j = 0; j < dp.length; j++) {
				if(dp[i][j]==0) break;
				tmp.add(dp[i][j]);
			}
			result.add(new ArrayList<>(tmp));
		}
		
		return result;
    }
}

复杂度:

O(N2

O(N2

题目:

思路:

构建一个与原数组 nums 等长的新数组,同时令新数组中下标为 i 的元素等于 nums[nums[i]]。

代码:

java 复制代码
class Solution {
    public int[] buildArray(int[] nums) {
        int n = nums.length;
        int[] ans = new int[n];
        for (int i = 0; i < n; ++i) {
            ans[i] = nums[nums[i]];
        }
        return ans;
    }
}

复杂度:

O(N)

O(N)

相关推荐
CoderYanger1 小时前
动态规划算法-简单多状态dp问题:15.买卖股票的最佳时机含冷冻期
开发语言·算法·leetcode·动态规划·1024程序员节
Xの哲學1 小时前
Linux RTC深度剖析:从硬件原理到驱动实践
linux·服务器·算法·架构·边缘计算
狐571 小时前
2025-12-04-牛客刷题笔记-25_12-4-质数统计
笔记·算法
小O的算法实验室1 小时前
2024年IEEE IOTJ SCI2区TOP,基于混合算法的水下物联网多AUV未知环境全覆盖搜索方法,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
洲星河ZXH2 小时前
Java,比较器
java·开发语言·算法
尋有緣2 小时前
力扣1069-产品销售分析II
leetcode·oracle·数据库开发
CoderYanger2 小时前
递归、搜索与回溯-FloodFill:33.太平洋大西洋水流问题
java·算法·leetcode·1024程序员节
CodeByV2 小时前
【算法题】双指针(二)
数据结构·算法
点云SLAM3 小时前
Boost库中Math 模块的根搜索 / 根求解和示例
数学·算法·数值优化·根搜索 / 根求解和示例·函数根求解·boost模块