每日一题(4.20)

server/2024/11/14 21:11:41/

目录

  • Leecode-118-杨辉三角
    • 题目
    • 示例
    • 解题思路
    • 代码实现
  • Leecode-238-除自身以外数组的乘积
    • 题目
    • 示例
    • 解题思路
    • 代码实现

Leecode-118-杨辉三角

题目

给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。

在「杨辉三角」中,每个数是它左上方和右上方的数的和。
题目

示例

示例1

输入: numRows = 5
输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]

示例2

输入: numRows = 1
输出: [[1]]

解题思路

  1. 分配空间:根据numRows的值,为二维数组res分配空间,并初始化returnSize为numRows。同时,为returnColumnSizes分配空间,用于存储每一行的列数。

  2. 初始化第一行:杨辉三角的第一行总是只有一个元素1。因此,为res[0]分配一个整数的空间,并赋值为1。同时,设置returnColumnSizes[0]为1。

  3. 生成后续行:从第二行开始,遍历每一行。对于每一行i(从1开始),首先获取前一行i-1的数组m。然后,为新行i分配i+1个整数的空间,并初始化第一个和最后一个元素为1。接下来,通过遍历前一行m的元素,计算新行n的中间元素,每个元素n[j]都是m[j-1]和m[j]的和。最后,将新行n的指针赋给res[i],并更新returnColumnSizes[i]为i+1。

  4. 返回结果:最后,返回二维数组res的指针。

代码实现

/*** Return an array of arrays of size *returnSize.* The sizes of the arrays are returned as *returnColumnSizes array.* Note: Both returned array and *columnSizes array must be malloced, assume caller calls free().*/
int** generate(int numRows, int* returnSize, int** returnColumnSizes) {int** res = (int**) malloc(sizeof(int*) * numRows);*returnSize = numRows;*returnColumnSizes = (int*) malloc(sizeof(int) * numRows);res[0] = (int*) malloc(sizeof(int) * 1);(*returnColumnSizes)[0] = 1;res[0][0] = 1;for (int i = 1; i < numRows; i++) {int* m = res[i - 1];int* n = (int*) malloc(sizeof(int) * (i + 1));(*returnColumnSizes)[i] = i + 1;n[0] = 1;for (int j = 1; j < i; j++) {n[j] = m[j - 1] + m[j];}n[i] = 1;res[i] = n;}return res;
}

Leecode-238-除自身以外数组的乘积

题目

给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。

题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。

请 不要使用除法,且在 O(n) 时间复杂度内完成此题。

示例

示例1

输入: nums = [1,2,3,4]
输出: [24,12,8,6]

示例2

输入: nums = [-1,1,0,-3,3]
输出: [0,0,9,0,0]

解题思路

  1. 创建一个结果数组 res,并将第一个元素初始化为 1
  2. 从左到右遍历数组,记录左侧元素的乘积
  3. 从右到左遍历数组,记录右侧元素的乘积
  4. 返回结果数组 res

代码实现

/*** Note: The returned array must be malloced, assume caller calls free().*/
int* productExceptSelf(int* nums, int numsSize, int* returnSize) {int *res = (int *)malloc(sizeof(int)* numsSize);*returnSize = numsSize;res[0] = 1;for(int i = 1; i < numsSize; i++){res[i] = res[i - 1] * nums[i - 1];}int flag = 1;for(int i = numsSize - 1; i >= 0; i--){res[i] *= flag;flag *= nums[i];}return res;
}

http://www.ppmy.cn/server/6588.html

相关文章

mysql解决插入根据某条件判断是否插入

exists &#xff1a;如果子查询查询到了列那么就为真。 not exists &#xff1a; 如果子查询查询不到结果则返回值为真。 如果配合 insertinto、select、update、delete的where 条件使用&#xff0c;就能根据某些条件&#xff0c;先判断条件是否满足在做相应的操作。 示例&…

axios的跨越封装

开发环境需要配置代理devServer: {// host: localhost, // ip 本地// open: true, // 配置自动启动浏览器port: 3000, // 设置端口号proxy: {/api: { // 接口以api开头的才用代理target: 服务器ip, //axiso实例里的baseURL的值&#xff08;后端路径&#xff09;changeOrigin: t…

RHCE ssh练习之远程连接服务实战

项目要求 一.配置两台主机 主机1. 主机名: server.example.com ip: 172.25.254.100 建立用户timinglee&#xff0c;其密码为timinglee 主机2 主机名&#xff1a;client.example.com ip: 172.25.254.200 二.安需求完成项目 172.25.254.200 在远程登录172.25.254.100的root用户时…

《机器学习by周志华》学习笔记-线性模型-02

1、对数几率回归 1.1、背景 上一节我们考虑了线性模型的回归学习,但是想要做分类任务就需要用到上文中的广义线性模型。 当联系函数连续且充分光滑,考虑单调可微函数,令: 1.2、概念 找一个单调可谓函数,将分类任务的真实标记与线性回归模型的预测值联系起来,也叫做「…

可视化大屏的应用(13):在能源环保领域的五大用武之地

可视化大屏在能源环保领域具有重要的应用价值。以下是一些主要的应用价值&#xff1a; 数据监控与分析 可视化大屏可以实时展示能源使用情况、环境污染指标、能源产量和消耗等数据。通过直观的数据可视化&#xff0c;能够帮助能源管理人员和环保专家更好地监控和分析数据&…

从三大层次学习企业架构框架TOGAF

目录 前言 掌握TOGAF的三个层次 层次1&#xff1a;怎么学&#xff1f; 层次2&#xff1a;怎么用&#xff1f; 层次3&#xff1a;怎么思&#xff1f; 结束语 前言 对于一名架构师来讲&#xff0c;如果说编程语言是知识库层次中的入门石&#xff0c;那么企业架构框架则相当…

Linux编辑器-vim的使用

vim的基本概念 vim的三种模式(其实有好多模式&#xff0c;目前掌握这3种即可),分别是命令模式&#xff08;command mode&#xff09;、插 入模式&#xff08;Insert mode&#xff09;和底行模式&#xff08;last line mode&#xff09;&#xff0c;各模式的功能区分如下&#…

【氮化镓】微波脉冲对GaN HEMT失效的影响

本文是一篇关于高功率微波脉冲作用下GaN HEMT&#xff08;高电子迁移率晶体管&#xff09;热电多物理场耦合失效的实验研究。文章由Xiangdong Li等人撰写&#xff0c;发表在2023年11月的《IEEE Transactions on Electron Devices》上。文章通过实验研究了在高功率微波脉冲应力下…