//returnasea
//returnasea
全部文章
分类
题解(106)
归档
标签
去牛客网
登录
/
注册
//returnasea的博客
全部文章
(共106篇)
题解 | #链表的奇偶重排#
拆分链表中的结点,把序号为奇数的结点放在数组odd中,把序号为偶数的结点放在数组even中,然后分别遍历两个数组,将接连链接在新的头结点上。 /** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int ...
C++
2021-10-06
0
401
题解 | #缺失数字#
缺失的数字或者在[0,n-1]的范围内,或者为n。遍历a数组,将已经出现的数字i进行标记,使得a[i]为负,那么若a中存在正数,则此正数的下标就是缺失的数字,否则为n。注意在标记的时候使用abs()。 class Solution { public: /** * 代码中的类名、方法...
C++
2021-10-06
0
392
题解 | #缺失的第一个正整数#
nums的长度为n,所以缺失的第一个正整数要么在[1,n]中,要么是n+1。将nums中的负数修改为n+1,然后遍历nums数组,当碰到的元素<=n时,表示此元素在[1,n]中出现过,将它标记为负数。再次遍历nums碰到的第一个非负数的下标表示没有出现过,否则未出现的元素为n+1。 class...
C++
2021-10-06
16
2210
题解 | #矩阵元素查找#
因为行和列的元素是有序递增的,所以大约在副对角线附近的元素就是每个一主对角线上所有元素的中间值,因此从右上角到左下角进行遍历,寻找给定值的元素。 class Solution { public: vector<int> findElement(vector<vector&l...
C++
2021-10-06
0
494
题解 | #反转数字#
思路:使用to_string将int转为string,再利用stringstream流将string转为int,过程中要另外将符号存起来。判断是否溢出可以用更大的long long 保存结果,比较和int是否相等,不相等时溢出。 class Solution { public: /** ...
C++
2021-10-06
0
430
题解 | #将字符串转化为整数#
使用STL中的stringstream实现转换。 class Solution { public: int atoi(const char *str) { int val{}; stringstream s_stream{}; s_stream...
C++
2021-10-06
1
446
题解 | #删除有序链表中重复的元素-II#
双指针法,前后指针,并引入了虚拟头结点。首先根据pre和cur判断是否有重复结点,然后据此调整链接关系。这种方法并没有删除结点,会造成内存泄漏。 /** * struct ListNode { * int val; * struct ListNode *next; * }; */ cla...
C++
2021-10-06
0
484
题解 | #判断一棵二叉树是否为搜索二叉树和完全二叉树#
二叉搜索树的中序遍历是递增的。判断完全二叉树的方法:层次遍历,注意空结点可以入队列,当队列pop的过程中遇到第一个空结点时break,然后检查队列中的剩余元素,如果存在非空结点则不是完全二叉树。 /** * struct TreeNode { * int val; * struct TreeN...
C++
2021-10-06
0
432
题解 | #在两个长度相等的排序数组中找到上中位数#
因为两个排序数组的大小都是n,上中位数相当于两个数组合并排序之后的第n个数,分别给arr1和arr2设置指针,比较大小,就可以找到第n个数。 class Solution { public: /** * find median in two sorted array * ...
C++
2021-10-06
0
530
题解 | #最长公共子序列-II#
动态规划可以求出最长公共子序列的长度,dp[i][j]表示以i-1结尾的s1和以j-1结尾的s2之间的最长公共子序列长度,由dp[i-1][j]、dp[i][j-1]以及dp[i-1][j-1]这三个上一状态推导出当前状态。 难点在于如何根据dp表的信息得到具体的子序列。从dp的右下角到左上角方向遍...
C++
2021-10-06
8
735
首页
上一页
1
2
3
4
5
6
7
8
9
10
下一页
末页