前言

第二周 相信大家已经学会一些基础语法了 但是可能对指针的理解 对结构体 链表等数据结构的认识 乃至的认识 还有欠缺

于是这周我们将深入这部分内容 以题目为驱动来做些事情

另外按照惯例 每道题都有骚操作的空间

最后,思路为王


第一题 经典送分前缀和

基础知识点

  • 指针 函数等概念
  • 如何申请内存空间
  • 暴力模拟

高级知识点

  • 记忆化搜索
  • 前缀和

段位
黑铁~白银

背景

数组nums的前缀和的计算公式为:getSum[i] = sum(nums[0]…nums[i])

请返回 nums 的动态和。

传入的 nums指针所指向空间已经被释放

示例 1:

输入:nums = [1,2,3,4]
输出:[1,3,6,10]
解释:动态和计算过程为 [1, 1+2, 1+2+3, 1+2+3+4] 。

示例 2:

输入:nums = [1,1,1,1,1]
输出:[1,2,3,4,5]
解释:动态和计算过程为 [1, 1+1, 1+1+1, 1+1+1+1, 1+1+1+1+1] 。

数据范围
程序能解决的n越大越好 不限制

代码示例

int* getSum(int* nums, int numsSize, int* returnSize){}

拓展
如果传入的nums数组指向空间没有被释放 应该怎么做可以省一点空间


第二题 可能没有用到算法的题目

基础知识点

  • 二维指针 函数等概念
  • 暴力模拟
  • 细心

高级知识点

  • 莫得

段位
黑铁

背景

给定一个正整数 n,打印输出一个包含 1 到 n 2 n^2 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。

示例 1:

输入: 3
输出:
[
[ 1, 2, 3 ],
[ 8, 9, 4 ],
[ 7, 6, 5 ]
]

数据范围
程序能解决的n越大越好 不限制

代码示例

int** generateMatrix(int n){}

第三题 我就贪那点水

基础知识点

  • 指针 函数等概念

高级知识点

  • 贪心 二分
  • 优先队列 或者 哈希表 或者 链表等 同样效果的数据结构

段位
黄金

背景
假设我有 n 个湖泊,下雨的时候,如果第 n 个湖泊是空的,那么它就会装满水,否则这个湖泊会发生洪水。你的目标是避免任意一个湖泊发生洪水

给你一个整数数组 rains ,其中:

  • rains[i] > 0 表示第 i 天时,第 rains[i] 个湖泊会下雨。
  • rains[i] == 0 表示第 i 天没有湖泊会下雨,你可以选择 一个 湖泊并 抽干 这个湖泊的水。

请返回一个数组 ans ,满足:

  • ans.length == rains.length
  • 如果 rains[i] > 0 ,那么ans[i] == -1 。
  • 如果 rains[i] == 0 ,ans[i] 是你第 i 天选择抽干的湖泊。

如果有多种可行解,请返回它们中的 任意一个 。如果没办法阻止洪水,请返回一个 空的数组 。

如果你抽干一个满水湖泊,它会变空。如果抽空湖泊,则无事发生(详见示例 4)。

传入的 rains、returnSize指针所指向空间没有被释放

示例 1:

输入:rains = [1,2,3,4]
输出:[-1,-1,-1,-1]
解释:第一天后,装满水的湖泊包括 [1]
第二天后,装满水的湖泊包括 [1,2]
第三天后,装满水的湖泊包括 [1,2,3]
第四天后,装满水的湖泊包括 [1,2,3,4]
没有哪一天你可以抽干任何湖泊的水,也没有湖泊会发生洪水。

示例 2:

输入:rains = [1,2,0,0,2,1]
输出:[-1,-1,2,1,-1,-1]
解释:第一天后,装满水的湖泊包括 [1]
第二天后,装满水的湖泊包括 [1,2]
第三天后,我们抽干湖泊 2 。所以剩下装满水的湖泊包括 [1]
第四天后,我们抽干湖泊 1 。所以暂时没有装满水的湖泊了。
第五天后,装满水的湖泊包括 [2]。
第六天后,装满水的湖泊包括 [1,2]。
可以看出,这个方案下不会有洪水发生。同时, [-1,-1,1,2,-1,-1] 也是另一个可行的没有洪水的方案。

示例 3:

输入:rains = [1,2,0,1,2]
输出:[]
解释:第二天后,装满水的湖泊包括 [1,2]。我们可以在第三天抽干一个湖泊的水。
但第三天后,湖泊 1 和 2 都会再次下雨,所以不管我们第三天抽干哪个湖泊的水,另一个湖泊都会发生洪水。

示例 4:

输入:rains = [69,0,0,0,69]
输出:[-1,69,1,1,-1]
解释:任何形如 [-1,69,x,y,-1], [-1,x,69,y,-1] 或者 [-1,x,y,69,-1] 都是可行的解,其中 1 <= x,y <= 10^9

示例 5:

输入:rains = [10,20,20]
输出:[]
解释:由于湖泊 20 会连续下 2 天的雨,所以没有没有办法阻止洪水。

数据范围
1 < = r a i n s . l e n g t h < = 1 0 5 1 <= rains.length <= 10^5 1<=rains.length<=105

0 < = r a i n s [ i ] < = 1 0 9 0 <= rains[i] <= 10^9 0<=rains[i]<=109

代码示例

int* avoidFlood(int* rains, int rainsSize, int* returnSize){}

第四题 最短路径问题

基础知识点

  • 二维指针 函数等概念
  • 暴力递归

高级知识点

  • 经典动态规划

段位
黑铁~黄金

背景

给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。

说明:每次只能向下或者向右移动一步。

传入的 grid、gridSize、gridColSize指针所指向空间没有被释放

示例 1:

输入:
[
[1,3,1],
[1,5,1],
[4,2,1]
]
输出: 7
解释: 因为路径 1→3→1→1→1 的总和最小。

数据范围
程序能解决的n越大越好 不限制

代码示例

int minPathSum(int** grid, int gridSize, int* gridColSize){}

第五题 给萌新留活路的链表

基础知识点

  • 指针 函数等概念
  • 链表
  • 动态申请内存

段位
白银?

背景
请实现一个链表 链表元素包含参数indexvalue

链表功能能够实现增删改查

  • 增 给定序号(index,即插入的位置)与元素值(value) 增加元素
  • 删 给定序号(index),删除元素
  • 改 给定序号(index),新的值(value),改变元素
  • 查 给定序号(index),返回值(value)
  • 查 返回所有的值(value),并且进行排序和去重,输出

后记 要求

请上交程序给你的组长 提供以下材料:

  • 源代码 .c .cpp 或者.java (考指针的题目你就只能用c语言了)
  • 思路说明 建议不要仅仅用注释代替思路说明 除非真的很简单:)
  • 每周周日24:00为上交截止时间 早交有加分

极客20届 第二周练习相关推荐

  1. Django 学习小组:博客开发实战第二周教程 —— 实现博客详情页面和分类页面

    本教程内容已过时,更新版教程请访问: django 博客开发入门教程. 上周我们完成了博客的 Model 部分,以及 Blog 的首页视图 IndexView. 本节接上周的文档 Django 学习小 ...

  2. 银联高校极客挑战赛 初赛 第二场

    开场几十分钟后才开始打的,实验室居然锁门了... A. 码队GO 左上.右下角为(1,1).(x,y)的矩阵的大小,dp处理 然后一个裸的二分答案 (1,1) (x,y) (x-k,y-k) 三个点 ...

  3. Geekban极客班 第三周

    复合 composition template<class T,class Sequence=deque<T> > class queue{... protected:Sequ ...

  4. 极客观察:利用人性弱点的互联网服务

    (一)贪婪 一个伟大的产品发明离不开对人性的深刻探索.你可能不知道到底为什么某个产品让你着迷,你也可能不知道为什么一些公司总能制造出你想要的产品.来让我们看看这些公司到底用什么东西吸引着你. 极客观察 ...

  5. 极客班C++ STL(容器)第二周笔记

    为什么80%的码农都做不了架构师?>>>    极客班 C++ STL (容器算法)第二周笔记 标签(空格分隔): C++ 1. 容器(下) 1.1 Stack a. 概述 Stac ...

  6. 2022第二届低代码极客挑战赛邀你来战!

    随着数字经济的加速深化,80%+的企业与机构对业务需求的敏捷响应.高效低成本的开发与运维有着强烈的需求,而在这其中,越来越多企业与机构的领导者在IT建设以及数字化转型探索中,会考虑利用低代码/零代码产 ...

  7. 腾讯回应发布虚假广告被罚20万;苹果客服回应iPhone 12屏幕发绿;Chrome 87 正式版发布|极客头条...

    整理 | 郑丽媛 头图 | CSDN 下载自东方 IC 快来收听极客头条音频版吧,智能播报由出门问问「魔音工坊」提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「 ...

  8. 新浪微博回应热搜被暂停更新一周;即刻 APP 下架一年后恢复上线;Android 11 Beta 版发布| 极客头条...

    整理 | 屠敏 头图 | CSDN 下载自东方 IC 快来收听极客头条音频版吧,智能播报由出门问问「魔音工坊」提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极 ...

  9. ​微信Android版支持改微信号,淘宝硬核拒绝改名要求;5G 套餐价格松动;Kotlin 1.4 第二个预览版发布|极客头条...

    整理 | 屠敏 头图 | CSDN 下载自东方 IC 快来收听极客头条音频版吧,智能播报由出门问问「魔音工坊」提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极 ...

最新文章

  1. 一些算法入门应该明白的东西
  2. tensorfllow MNIST机器学习入门
  3. 比nginx-rtmp高三倍性能的SRS的高性能是个什么球?
  4. 【转载】async await 的前世今生(Updated)
  5. 笨办法学 Python · 续 练习 37:小型 BASIC
  6. 用 SOLID 原则保驾 React 组件开发
  7. bootstrap css选择不同的宽度
  8. c/c++ 多线程 ubuntu18.04 boost编译与运行的坑
  9. 中小企业网络安全建设指引
  10. 支付宝资金预授权怎么开通详解,芝麻信用免押接口开通,免押领取/免押金租赁设备!
  11. vue路由守卫以及用法
  12. HTML下拉菜单(超详细):
  13. Cannot execute binary file 之原因
  14. QQ音乐车机模式中蓝牙音乐无效
  15. CSSposition定位(relative、absolute、fixed、sticky)
  16. 开放原子训练营(第一季)铜锁探密,SM3杂凑算法加强至pro版
  17. Verilog数字系统设计——8位数字比较器
  18. CMMI2.0之我见-管理性能和度量MPM
  19. python代码练习,微信登入并生成头像大图
  20. 鸿蒙系统2.0电视版,鸿蒙2.0系统,鸿蒙2.0发布系统官方最新版预约 v1.0-手游汇

热门文章

  1. 将base64图片旋转90度,将图片格式化(保持透明背景)
  2. 怎么看xp计算机配置文件,WinXP怎样查看电脑使用记录?查看电脑使用痕迹的方法...
  3. Flash,RAM,ROM区别
  4. stty icanon
  5. 第4周学习:MobileNetV1, V2, V3
  6. jQuery中Input属性checkBox用removeAttr后无效的陷阱
  7. 【java8】自定义Collector
  8. 手机计算机撩妹,拿着这款手机,搭讪小姐姐成功率竟然这么高
  9. 数据特征处理之文本型数据特征值化(一)
  10. vue-cli 测试_vue js vue cli根据测验问题提出建议