![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试合集
文章平均质量分 62
是我,Zack
就职于某公司大数据部,负责开发、实施、运维相关工作,喜欢边学习边笔记,热衷分享、开源,有大数据方向感兴趣的小伙伴欢迎多多交流~
展开
-
剑指offer JZ13:调整数组使奇数位于偶数前面(且相对位置不能改变)
简单思路,参考一下呀!题意:区分出奇数和偶数,按照原顺序奇数偶数顺序不变我的思路:开辟两组新的空间,我这里用的是LinkedList,因为想要用到队列的先进先出方法1、先找出奇数利用2余某个数不为零就是奇数(这里不考虑0的情况),那么余2是0那就是偶数啦2、然后奇数放在一个链表里面,偶数放在一个链表里面。链表不需要事先知道长度大小,所以用链表方便,数组是没法确定大小的。3、就先将放了奇数的链表一个一个出栈(poll函数)放在题目给的array中,然后就是偶数,思路中的很简单代码如下:import原创 2021-05-17 23:25:21 · 123 阅读 · 0 评论 -
剑指offer JZ11:二进制中1的个数
描述这是一篇面对初级coder的题解。知识点:二进制,位运算难度:一星题解方法一:暴力方法分析:题目给一个有符号的整数int,求整数转化成二进制数后,1的个数。直接根据题目的描述来提出方法一。有2个问题:问题1: 如何从十进制数转化到二进制数?问题2:转化为二进制数后,如果判断有1的个数?方法1:除2取模法。int val; // input dataint ans = 0;while (val != 0) { int tmp = val % 2; if (tm.原创 2021-05-17 23:23:36 · 226 阅读 · 0 评论 -
剑指offer JZ10.矩形覆盖 -Java实现
描述:这是一道规律题。知识点:递归,记忆递归,动态规划,递推难度::一星题解:方法一:递推对于这种题没有思路怎么办?那就对n 从小到大,一步步分析:n=1时,显然只有一种方法n=2时,如图有2种方法n=3,如图有3中方法n=4,如图有4种方法。如果到这里,还没有发现规律怎么办呢?那我们就再分析以下,从n=3到n=4,怎么来的呢?这里有2种情况:通过以上分析,发现刚好和图中的个数一样。直接在n=3的情况下,再后面中添加一个竖着的。这个很显然成立,有3种情况然后横着的原创 2021-05-17 23:22:37 · 97 阅读 · 0 评论 -
剑指Offer JZ09 变态跳台阶(数列推导)
题目来源:牛客网-剑指Offer专题题目地址:变态跳台阶题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。题目解析一:直接推导本质上是斐波那契数列的变种,普通跳台阶是一步与两步,问题规模缩小到分成最后要跳到第 n 阶可以跳两次或者一次去求解,所以,在普通跳台阶,设置两个临时变量存下跳一次或者两次时,前面会有多少种可能的结果dp 就是可以由什么状态推导出最后的状态,斐波那契数列是由前两种状态,而这里就是由前 n - 1 种状态推导出原创 2021-05-16 23:58:56 · 147 阅读 · 1 评论 -
剑指Offer JZ08 跳台阶(递推)-java实现
题目来源:牛客网-剑指Offer专题题目地址:跳台阶题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。题目解析这是一道经典的递推题目,你可以想如果青蛙当前在第n级台阶上,那它上一步是在哪里呢?显然,由于它可以跳1级台阶或者2级台阶,所以它上一步必定在第n-1,或者第n-2级台阶,也就是说它跳上n级台阶的跳法数是跳上n-1和跳上n-2级台阶的跳法数之和。**方法一:**面试别写型递推版实现,时间复杂度public c原创 2021-05-16 23:55:56 · 129 阅读 · 1 评论 -
剑指offer JZ07.斐波那契数列 (递归、动态规划、优化储存、持续优化)java实现
描述此题是非常经典的入门题了。我记得第一次遇到此题是在课堂上,老师拿来讲“递归”的(哈哈哈)。同样的类型的题还有兔子繁殖的问题。大同小异。此题将用三个方法来解决,从入门到会做。考察知识:递归,记忆化搜索,动态规划和动态规划的空间优化。难度:一星题解方法一:递归题目分析,斐波那契数列公式为:f[n] = f[n-1] + f[n-2], 初始值f[0]=0, f[1]=1,目标求f[n]看到公式很亲切,代码秒秒钟写完。public class Solution { public int F.原创 2021-05-16 23:53:09 · 161 阅读 · 0 评论 -
剑指offer JZ06:旋转数组的最小数
描述这是一道对二分查找算法灵活运用的一道题目。二分查找算法不限于运用在有序数组上。如果能够明确二分之后,答案存在于二分的某一侧,就可以使用二分。本题就是如此。难度:二星考察知识:数组,二分查找题解方法一:暴力方法:直接遍历一遍数组,即可找到最小值。但是本题的附加条件就没有用上。肯定不是面试官所期望的答案。方法二:二分查找这种二分查找难就难在,arr[mid]跟谁比.我们的目的是:当进行一次比较时,一定能够确定答案在mid的某一侧。一次比较为 arr[mid]跟谁比的问题。一般的比较原则有:原创 2021-05-12 13:12:16 · 71 阅读 · 2 评论 -
剑指offer JZ05:用两个栈实现队列
描述这是一道对栈和队列之间灵活转化的题目。难度:一星考察知识:队列,栈题解方法:模拟如果我知道队列是FIFO,栈是FILO,但是这道题我还是不知道怎么写怎么办?对于这种感觉不难,但是又不会写的,方法就是模拟。比如有如下操作:(pop操作确保栈中有元素)1push(1);push(2);pop(3);push(4);根据队列的特性,只能pop(1),pop(2),pop之后的结果上述是队列的操作。当push的时候,我们必须要用一个stack来存,假设用stack1来存。那么pus原创 2021-05-12 13:08:34 · 81 阅读 · 1 评论 -
剑指offer JZ1-5刷题笔记
A 参考资料书本《剑指offer(第二版)》JZ01 二位数组中的查找1.题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。[ [1,2,8,9], [2,4,9,12], [4,7,10,13], [6,8,11,15]]给定 target = 7,返回 true。给定 target = 3,返回 false。原创 2021-05-12 13:06:41 · 161 阅读 · 0 评论 -
java 输入输出总结(牛客、笔试、机试)
因为踩过坑,所以特别整理了一下,发现其实不少小伙伴同样都是这样,特别简单小结一下,java网上笔试的时候OJ的一些要求的实例1 单行输入// 本题为考试单行多行输入输出规范示例,无需提交,不计分。import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); while (i原创 2021-04-18 19:43:01 · 4051 阅读 · 0 评论