![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试
码农大橙子
这个作者很懒,什么都没留下…
展开
-
剑指offer-数组
剑指offer练习题 题目描述:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 输入:[1,2,3,4] 输出:[1,3,2,4] 我的思路开始是遍历找到偶数,将这个偶数与后面第一个奇数交换,可是发现后面如果两个偶数连在一块就会导致偶数的顺序发生变化。后来百度别人的思路,有的用两个链表来保存奇数和偶数,最后连接到一块,这种是一个方法。还有一种思路和我之前有点类似,也是遍历偶数的话,如果他原创 2021-04-11 19:58:29 · 52 阅读 · 0 评论 -
剑指offer-数组
剑指offer练习题 题目描述:输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 输入:[1,2,4,7,11,15],15 输出:[4,11] 我的思路:两层for循环遍历,出现和与目标值一样的时候,内循环停止,应为后面就算有也是比这个大,执行外循环。缺点是时间复杂度较高,没有很好的利用有序这个条件。 import java.util.ArrayList; public class Solution { public st原创 2021-03-20 18:17:02 · 68 阅读 · 0 评论 -
剑指offer-数组
剑指offer练习题 题目描述:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007 对于%50%的数据,size\leq 10^4size≤10**4 对于75%的数据,size\leq 10^5size≤10 **5 对于100%的数据,size\leq 2*10^5size≤2∗10 **5( **表示2次方) 输入:[1,2,3,4,5,6,7,0]原创 2021-03-16 22:09:23 · 79 阅读 · 0 评论 -
递归
递归排序分析 我们知道递归函数就是函数自己调用自己,下面来分析一下递归函数的具体执行过程。以归并排序中的递归为例: private static void sort(int[] arr,int left,int right,int []temp){ if(left<right){ int mid = (left+right)/2; sort(arr,left,mid,temp);//左边归并排序,使得左子序列有序原创 2021-03-16 17:18:25 · 113 阅读 · 0 评论 -
剑指offer-数组
剑指offer题目练习 题目描述 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中第一个重复的数字。 例如,如果输入长度为7的数组[2,3,1,0,2,5,3],那么对应的输出是第一个重复的数字2。没有重复的数字返回-1。 如:输入:[2,3,1,0,2,5,3],输出:2 思路一:直接两次循环,每一次的外循环和内循环比较,如果有重复的数字就返回,这样时间复杂都比较高。 public int duplica原创 2021-03-15 21:58:36 · 78 阅读 · 0 评论 -
剑指offer-数组
剑指offer题目练习 题目描述: 统计一个数字在升序数组中出现的次数。 输入:[1,2,3,3,3,3,4,5],3 输出:4 题目解析: 一般出现有序数组需要利用这个条件,我们也可以使用暴力便利数组,找到与目标值相同的个数,但是出现有序我们应该考虑二分法节约查找时间。 public class Solution { public int GetNumberOfK(int [] array , int k) { int count=0; int low=0;原创 2021-03-12 16:03:53 · 51 阅读 · 0 评论