- 博客(6)
- 收藏
- 关注
原创 <一刷>剑指Offer 47. 礼物的最大价值
问题描述:在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物?思路:动态规划:递推公式grid[x][y]+=max{grid[x-1][y],grid[x][y-1]}代码:...
2020-12-01 11:19:42 144
原创 LeetCode刷题日志 206. 反转链表
题目:反转一个单链表。思路:迭代:从前往后,用三个指针逐个修改链表每个节点指向。递归:从后往前,递归可以返回链表中某节点的前一个节点。代码:
2020-09-02 15:48:40 127
原创 LeetCode刷题日志 2. 两数相加
题目:给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。思路:按照指针顺序逐位相加即可,需要特别处理的是进位和两位数长度不一致的情况。代码:BTW:这题可以熟悉一下链表操作,包括定义struct,添加节点,指针操作。...
2020-09-02 15:07:48 134
原创 LeetCode刷题日志 486. 预测赢家
学习目标:给定一个表示分数的非负整数数组。 玩家 1 从数组任意一端拿取一个分数,随后玩家 2 继续从剩余数组任意一端拿取分数,然后玩家 1 拿,…… 。每次一个玩家只能拿取一个分数,分数被拿取之后不再可取。直到没有剩余分数可取时游戏结束。最终获得分数总和最多的玩家获胜。给定一个表示分数的数组,预测玩家1是否会成为赢家。你可以假设每个玩家的玩法都会使他的分数最大化。提示:1 <= 给定的数组长度 <= 20.数组里所有分数都为非负数且不会大于 10000000 。如果最终两个玩家的
2020-09-01 16:57:54 189
原创 LeetCode刷题日志 58. 最后一个单词的长度
学习目标:给定一个仅包含大小写字母和空格 ’ ’ 的字符串s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。如果不存在最后一个单词,请返回0 。说明:一个单词是指仅由字母组成、不包含任何空格字符的最大子字符串。思路:即求最后一个字符串的长度代码:从后往前遍历,搜索到非空格元素停止,作为最后一个字符串的最后一个字母;然后继续向前遍历,搜索到空格,或者遍历完了整个字符串,结束,得到最后一个字符串的首字母索引。#BTW:while循坏比for循环用时短,不
2020-08-31 20:05:56 151
原创 LeetCode刷题日志 459. 重复的子字符串
题目:给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。思路遍历字符串一半长度,当发现与s[0]相同的字符s[i]时,检查是否能通过复制substr(0,i)得到s。解决方案:#知识点:提交两次没通过,又用codeblocks调了半天,最后发现原来substr(pos,n)是从pos位置开始取n个元素,而不是起始和终止的索引,compare也同理。#提交结果执行用时:24 ms, 在所有 C++ 提交中击败了84.84
2020-08-24 17:14:32 234
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人