
剑指offer
努力的猿猿
此人很勤快,什么都写了
展开
-
JZ50数组中重复的数字
在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任一一个重复的数字。存在不合法的输入的话输出-1。class Solution {public: int duplicate(vector<int>& numbers) { int i=0; int n=numbers.size(); int*repeat=new int[numbe原创 2021-05-09 20:53:02 · 92 阅读 · 0 评论 -
JZ35数组中的逆序对
在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007class Solution {public: int InversePairs(vector<int> data) { long long P=0; for(int i=0;i<data.size()-1;i++) for原创 2021-05-09 20:51:54 · 107 阅读 · 0 评论 -
JZ13调整数组顺序使奇数位于偶数前面
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。class Solution {public: vector<int> reOrderArray(vector<int>& array) { vector<int> new_array; for(int i=0;i<array.size();i++)原创 2021-05-09 20:50:43 · 90 阅读 · 0 评论 -
JZ28数组中出现次数超过一半的数字
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。class Solution {public: int MoreThanHalfNum_Solution(vector<int> numbers) { int n=numbers.size(); int *count_array=new int[n]; for(int i=0;i<n;i++) { count_array[numbers[i]]++; i原创 2021-05-09 20:47:43 · 118 阅读 · 0 评论 -
JZ7斐波那契数列
对于斐波那契数列,要求输入一个整数n(n<=39),输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1)。class Solution {public: int Fibonacci(int n) { int a[40]={0,1}; for(int i=2;i<40;i++) { a[i]=a[i-1]+a[i-2]; } if(n<=39)原创 2021-04-25 08:50:30 · 134 阅读 · 0 评论 -
JZ1二维数组中的查找
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。#ifndef _JZ1_#define _JZ1_#include<vector>using namespace std; class Solution {public: bool Find(int target, vector<vector<int> >原创 2021-04-21 18:33:27 · 92 阅读 · 0 评论