新网站建设需要什么,公众号app下载,做网站如何挂支付系统,C语言网站开发pdf目录
题目#xff1a;剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 - 力扣#xff08;Leetcode#xff09;
题目的接口#xff1a;
解题思路#xff1a;
代码#xff1a;
过啦#xff01;#xff01;#xff01;
题目#xff1a;剑指 Offer 24. 反转链表 - …目录
题目剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 - 力扣Leetcode
题目的接口
解题思路
代码
过啦
题目剑指 Offer 24. 反转链表 - 力扣Leetcode
题目的接口
解题思路
代码
过啦
写在最后 题目剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 - 力扣Leetcode 题目的接口
class Solution {
public:vectorint exchange(vectorint nums) {}
};
解题思路
方法1:
我的思路比较暴力也是最容易想到的思路
建一个vector
第一次遍历数组把奇数插入进去
第二次遍历数组把偶数插入进去
然后返回即可。
这种方法最简单。
方法2
其实我还想到一种方法原地完成
只需要遍历一次数组遇到偶数与数组尾部交换
然后让尾指针即可。
不过我用的是第一种方法。
代码
class Solution {
public:vectorint exchange(vectorint nums) {vectorint v;//第一次遍历尾插奇数for(auto e : nums){if(e % 2 1){v.push_back(e);}}//第二次遍历尾插偶数for(auto e : nums){if(e % 2 0){v.push_back(e);}}return v;}
};
过啦 题目剑指 Offer 24. 反转链表 - 力扣Leetcode 题目的接口
/*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:ListNode* reverseList(ListNode* head) {}
};
解题思路
这道题看完后我有两种思路
第一种是将链表的数据逆置
第二种是将链表的指针逆置
我个人感觉将链表的指针逆置更容易效率也更高一些
具体思路就是将原头结点指向空
双指针遍历链表逆置指针即可。
代码
/*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:ListNode* reverseList(ListNode* head) {//判断链表是否为空if(head nullptr){return head;}//设置双指针ListNode* cur head-next;ListNode* prev head;//将头结点指向空head-next nullptr;//遍历链表逆置指针指向while(cur){ListNode*tmp prev;prev cur;cur cur-next;prev-next tmp;}return prev;}
};
过啦 写在最后
以上就是本篇文章的内容了感谢你的阅读。
如果喜欢本文的话欢迎点赞和评论写下你的见解。
如果想和我一起学习编程不妨点个关注我们一起学习一同成长。
之后我还会输出更多高质量内容欢迎收看。