当前位置:网站首页>牛客刷题——剑指offer(第四期)
牛客刷题——剑指offer(第四期)
2022-08-10 01:13:00 【学好c语言的小王同学】
前言
作者简介:友友们大家好,我是你们的小王同学
个人主页:小王同学
系列专栏:牛客刷题专栏
推荐一款非常火的面试、刷题神器 牛客网
觉得小王写的不错的话 麻烦动动小手 点赞 收藏 评论
今天给大家带来的刷题系列是:
剑指offer 链接: 剑指offer
里面有非常多的题库 跟面经知识 真的非常良心了!!
JZ49 丑数
题目描述
解题思路
根据题意可知 把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。
我们可以定义一个数组 dp 用来存储 丑数的个数
题目要求从小到大排列丑数
最小的丑数是1 所以dp[0]=1
丑数的形式 通用公式就是2x3y5z
所以我们就将res[n]去乘以 2、3、5,然后比较出最小的那个,就是我们当前的下一个丑数了。
代码详解
import java.util.*;
public class Solution {
public int GetUglyNumber_Solution(int index) {
if(index<=6){
return index; //特判前6个丑数
}
int i2=0,i3=0,i5=0; //定义三个变量 分别是包含质因子 2,3,5 乘的次数
int dp[]=new int[index];
dp[0]=1;
for(int i=1;i<index;i++){
dp[i]=Math.min(dp[i2]*2,Math.min(dp[i3]*3,dp[i5]*5));
//第一次是 2 ,3, 5 比较得到最小值是2
if(dp[i]==dp[i2]*2) i2++;
if(dp[i]==dp[i3]*3) i3++;
if(dp[i]==dp[i5]*5) i5++;
}
return dp[index-1]; .//返回第n个
}
}
过啦!
JZ29 顺时针打印矩阵
题目描述
解题思路
这道题正常模拟即可
注意边界问题
左右 边界 跟上下边界重合的时候
往右到底后再往下到底后再往左到底后再往上,结束这一圈,进入下一圈螺旋。
每次走完一步 都要判断 上下 边界 或者左右边界是否重合!
代码详解
import java.util.*;
import java.util.ArrayList;
public class Solution {
public ArrayList<Integer> printMatrix(int [][] matrix) {
ArrayList<Integer> res=new ArrayList<>();
if( matrix.length==0){
return res;
}
int left=0; //左边界
int right=matrix[0].length-1; //右边界
int up=0; //上边界
int down=matrix.length-1; //下边界
while(left<=right&&up<=down){
//第一行从左到右进行遍历
for(int i=left;i<=right;i++)
res.add(matrix[up][i]);
up++;
if(up>down) //如果上边界大于下边界就跳出循环
break;
//右边界从上到下
for(int i=up;i<=down;i++)
res.add(matrix[i][right]);
//右边界向左
right--;
if(left>right)
break;
for(int i=right;i>=left;i--)
res.add(matrix[down][i]);
down--;
if(up>down)
break;
//左边界往上
for(int i=down;i>=up;i--)
res.add(matrix[i][left]);
left++;
if(left>right)
break;
}
return res;
}
}
过辣~~
牛客是一款不论是面试 还是刷题 都是非常有用的 还等什么注册其来吧! 牛客网
边栏推荐
猜你喜欢
已备案域名用国外服务器会不会掉备案?
unity 报错 Unsafe code may only appear if compiling with /unsafe. Enable “Allow ‘unsafe‘ code“ in Pla
ABAP 里文件操作涉及到中文字符集的问题和解决方案
2022金九银十工作潮,怎么样才能成功跳槽面试拿到高薪呢?
Unity vertex animation
小程序开发的报价为什么有差别?需要多少钱?
Solidity最强对手:MOVE语言及新公链崛起
grafana9配置邮箱告警
Experimental support for decorators may change in future releases.Set the "experimentalDecorators" option in "tsconfig" or "jsconfig" to remove this warning
初步认识对象
随机推荐
跨部门沟通的技巧
JVM :运行时数据区-虚拟机栈
Pyscript,创建一个能执行crud操作的网页应用
破产企业的职工退休怎么办?
Unity vertex animation
惊掉你下巴,程序员编码竟然可以被 996 指数化
grafana9配置邮箱告警
MySQL最大连接数限制如何修改
ITK编译remote库
y92.第六章 微服务、服务网格及Envoy实战 -- Envoy基础(三)
mstsc/Mstsc (Microsoft terminal services client)远程桌面连接
【Grpc】简介
已备案域名用国外服务器会不会掉备案?
高并发+海量数据下如何实现系统解耦?【下】
彩色袜子题
[论文阅读] Diverse Image-to-Image Translation via Disentangled Representations
Initial attempt at UI traversal
sql实战积累
In the 2022 gold, nine, silver and ten work tide, how can I successfully change jobs and get a high salary?
Unity image使用长图后 图片很糊