![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
【剑指offer】
一卒2018
拉拉
展开
-
704. 二分查找
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。方法:二分查找二分查找是一种基于比较目标值和数组中间元素的教科书式算法。如果目标值等于中间元素,则找到目标值。如果目标值较小,继续在左侧搜索。如果目标值较大,则继续在右侧搜索。算法:初始化指针 left = 0, right = n - 1。当 left <= right:比较中间元素 nums[pivot]原创 2020-07-28 12:01:55 · 80 阅读 · 0 评论 -
剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。定义头指针 left ,尾指针 right .left一直往右移,直到它指向的值为偶数righ一直往左移, 直到它指向的值为奇数交换 nums[left] 和 nums[right] .重复上述操作,直到 left == right .示例:输入:nums = [1,2,3,4]输出:[1,3,2,4]注:[3,1,2,4] 也是正确的答案之一。方法一:首尾指针/转载 2020-07-28 11:19:11 · 98 阅读 · 0 评论 -
【剑指offer】面试题:调整数组顺序使奇数位于偶数前面
题目1:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。 考虑可扩展的解法,能秒杀 Offer 普通方法:先push_back()奇数,再push_back()偶数class Solution {public: void reOrderArray(vector<int> &ar...原创 2019-12-13 13:45:50 · 117 阅读 · 0 评论 -
剑指offer_用两个栈实现队列C++
class Solution{public: void push(int node) { stack1.push(node); //实现入队 } //出队思想: int pop() { //队列出队的底层实现:先将元素依次从1栈弹出,再依次压入至2栈, int a; //再 每次调用pop()出队列,返回一个元素。 if(stack2.empty()){原创 2020-07-24 00:59:28 · 288 阅读 · 0 评论 -
剑指offer_重建二叉树C++
题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。/** * Definition for binary tree 1 * struct TreeNode { 2 3 * int val; 4 5 6 *原创 2020-07-22 16:51:31 · 120 阅读 · 0 评论