牛客网刷题——斩获offer
个人主页:熬夜磕代码丶
作品专栏: java se
我变秃了,也变强了
给大家介绍一款程序员必备刷题平台——牛客网
点击注册一起刷题收获大厂offer吧
文章目录
- 一、 随机数组
- 二、 局部最小值
- 四、 三个数的最大乘积
- 三、 阶乘累加
一、 随机数组
通过对数器生成一个随机长度,随机大小的数组
public static int[] randomArray(int maxLen,int maxValue) {int Len = (int)(Math.random() * maxLen);int[] arr = new int[Len];if(Len > 0) {arr[0] = (int)(Math.random() * maxValue);for (int i = 1; i < Len; i++) {do {arr[i] = (int)(Math.random() * maxValue);} while(arr[i] == arr[i-1]);}}return arr;}```
二、 局部最小值
定义局部最小的概念。arr长度为1时,arr[0]是局部最小。arr的长度为N(N>1)时,如果arr[0] < arr[1],那么arr[0]是局部最小;
如果arr[N-1]<arr[N-2],那么arr[N-1]是局部最小;如果0<i<N-1,既有arr[i] < arr[i-1],又有arr[i] < arr[i + 1],那么arr[i]是局部最小。给定无序数组arr,已知arr中任意两个相邻的数都不相等,只需要返回arr中任意一个局部最小出现的位置即可,如果不存在这个位置就输出-1。
import java.util.*;
public class Main{public static int oneMinIndex(int[] arr) {if(arr == null || arr.length == 0) {return -1;}if(arr.length == 1) {return 0;}if(arr[0] < arr[1]) {return 0;}int N = arr.length;if(arr[N-1] < arr[N-2]) {return N-1;}int L = 0;int R = N - 1;int ans = -1;while(L <= R) {int mid = (L + R) / 2;if(arr[mid] < arr[mid-1] && arr[mid] < arr[mid+1]) {ans = mid;break;}if(arr[mid] > arr[mid-1]) {R = mid - 1;continue;}if(arr[mid] > arr[mid+1]) {L = mid + 1;continue;}}return ans;}public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();int[] arr = new int[n];while(scanner.hasNextInt()){for(int i = 0;i < n;i++) {arr[i] = scanner.nextInt();}}System.out.println(oneMinIndex(arr));}
}
四、 三个数的最大乘积
给定一个长度为 nn 的无序数组 AA ,包含正数、负数和 0 ,请从中找出 3 个数,使得乘积最大,返回这个乘积。
我们先对数组进行排序,然后就上面两个情况的数的大小,因为数组是升序的,从小到大,最大的两个负数乘积就在数组的最前面,最大的三个正数就在数组的最后面,比较两个数即可。
- 没有正数,当然负数越小乘积越大,即排序后数组的最后三个数,零大于负数
- 没有负数,数越大乘积越大,即排序后数组的最后三个数
- 一个负数,排序后的最后三个数乘积最大
- 一个正数,即开头的第一个情况。
public long solve (int[] A) {Arrays.sort(A);int n = A.length - 1;return Math.max((long)A[n]*A[n-1]*A[n-2],(long)A[0]*A[1]*A[n]);}
三、 阶乘累加
计算1!+2!+3!……+n!
方法1:暴力求解
public static long f1(int n) {long ans = 0;for (int i = 1; i <= n; i++) {ans += factorial(i);}return ans;}public static long factorial(int n){long ans = 1;for (int i = 1; i <= n; i++) {ans *= i;}return ans;}public static void main(String[] args) {//求阶乘之和Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();System.out.println(f1(n));}
方法二:迭代法
public static long f2(int n) {long ans = 0;long ret = 1;for (int i = 1; i <= n; i++) {ret *= i;ans += ret;}return ans;}public static void main(String[] args) {//求阶乘之和Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();System.out.println(f2(n));}
牛客网刷题——斩获offer相关推荐
- 牛客网刷题记录 || 结构体和类
这是牛客网刷题记录专栏第五篇博文,先给大家简单介绍一下牛客网,牛客网是一个集笔面试系统.题库.课程教育.社群交流.招聘内推于一体的优质网站,牛客网题库中包含几万道题目,注重通过边学边练的模式揽获编程人 ...
- 牛客网刷题之SQL篇:非技术快速入门39T
导航 前序 一.简单的关键字练习 1-10 二.知识点复习之 ==运算符== 1.算数运算符 2.比较运算符 3.逻辑运算符 4.位运算符 三.10-28T 0.简单题总结 1. SQL18 ==分组 ...
- 2023年大年初一 —— 牛客网刷题经验分享~
2023年大年初一 -- 牛客网刷题经验分享~
- 牛客网 刷题前的准备工作(输入 输出 如何接收?)
牛客网 刷题前的准备工作 牛客网 刷题前的准备工作 1. 数据读取接受问题 2.牛客刷题前的准备: 2.1. 弄清楚输入输出的行数关系 3.代码怎么写 3.1. 在牛客上测试自己的模板代码,是否能正确 ...
- 牛客网刷题记录 || 循环
这是牛客网刷题记录专栏第七篇博文,先给大家简单介绍一下牛客网,牛客网是一个集笔面试系统.题库.课程教育.社群交流.招聘内推于一体的优质网站,牛客网题库中包含几万道题目,注重通过边学边练的模式揽获编程人 ...
- 【牛客网刷题】中秋节前开启java专项练习错题总结第一天
[牛客网刷题]中秋节前开启java专项练习错题总结第一天 概述 写在前面 错题分析 值得记录的错题 总结 写在最后 概述 还有十几天就到中秋节了,从此又老了一岁,也多了一年的知识积累.对于这样一个特殊 ...
- verilog牛客网刷题代码汇总
verilog牛客网刷题代码汇总 作者:安静到无声 个人主页 作者简介:人工智能和硬件设计博士生.CSDN与阿里云开发者博客专家,多项比赛获奖者,发表SCI论文多篇. Thanks♪(・ω・)ノ 如果 ...
- 牛客网刷题——二叉树
作者:敲代码の流川枫 博客主页:流川枫的博客 专栏:和我一起学java 语录:Stay hungry stay foolish 工欲善其事必先利其器,给大家介绍一款超牛的斩获大厂offer利器--牛客 ...
- 牛客网刷题 --- 输入输出数据处理
正确处理输入输出格式 常见的输入格式: 预先不输入数据的组数 - 直接读到文件结尾 预先输入数据的组数 - 读数据组数然后循环 只有一组数据 - 直接读数据 处理输出格式要注意细节,看题目的具体要求 ...
- 牛客网刷题-java
大部分解答为牛客网各位同学的精彩回答,本文只是选择一些互联网常考题目记录备忘. 1.一个类的构造器可以调用这个类中的其他构造器: this的作用其中一个就是在一个构造方法中调用另一个构造方法,格式为t ...
最新文章
- Hadoop的存储架构介绍
- TranslateMessage()的困惑
- 例子:倒计时按钮可用
- mysql帐户权限replace_mysql 用户管理和权限设置
- CF1100F Ivan and Burgers
- Scala与Java差异(三)之函数
- java图像风格迁移_多说迁移,Java开发模仿自主实现评论(一)
- OPC数据访问方法简介
- ubuntu安装nginx报错:Failed to start A high performance web server and a reverse proxy server
- 扒站工具Teleport Pro教程
- Hadoop配置文件( hadoop-env.sh、core-site.xml、hdfs-site.xm、mapred-site.xml、yarn-site.xml、 slaves)详解
- 马哥linux视频笔记,马哥linux培训第四天笔记
- 传智播客黑马程序员_Hanselminutes播客48-适用于极客和程序员的入门棋盘游戏
- Medium之1468.计算税后工资
- 微信开发工具使用git
- strongswan与sangfor的ikev2配置
- 常见传感器和芯片的介绍
- Excel快速入门02
- arduino leonardo 入门
- simplexmlelement object php,php – 访问SimpleXMLElement对象的某些属性
热门文章
- java wgs84 百度坐标,百度坐标转WGS84(即GPS)坐标
- android ip v6 teredo,Win7系统通过teredo连接IPv6的方法
- BJDCTF_2nd PWN复盘
- 韩寒做错了(update 4 12)。
- Matlab去除图片上水印
- 快速翻译整篇pdf外文文献
- c语言中next如何用,C++ STL prev()和next()函数用法详解
- 【微信小程序】video视频组件问题
- 【Python-Numpy】numpy.random.binomial()的解析与使用
- html遮罩点击,点击按钮实现遮罩效果