用java写了几道编程题目,分享给大家

语法和C语言几乎一样,不懂 java 会 c 也可以看明白的。

最大连续数列和

题目说明

对于一个有正有负的整数数组,请找出总和最大的连续数列。给定一个int数组A和数组大小n,请返回最大的连续数列的和。保证n的大小小于等于3000。

测试样例:

[1,2,3,-6,1]

返回:6

解析

  题目要求找到总和最大的连续数列。你可以随意写几条包含正负数的数列,来找到方法。这本来是一道贪心问题,但我用暴力也可以在规定时间内得出解。(好吧,我承认我太菜了,只会暴力求解)具体方法大家分析代码吧,简单讲,就是两层循环求出所有连续数列的和,每次求得的和与之前求到的最大和比较。

代码如下:

public class MaxSum {
public int getMaxSum(int[] A, int n) {
int sum = -99999,s;
for (int i = 0; i < n; i++) {
s = 0;
for (int j = i; j < n; j++) {
s += A[j];
if (s > sum)
sum = s;
}
}
return sum;
}
}

第K个数

题目说明

  

  有一些数的素因子只有3、5、7,请设计一个算法,找出其中的第k个数。给定一个数int k,请返回第k个数。保证k小于等于100。

  

测试样例:

3

返回:7

解析

  这道题目要求求得第k个因子只有3、5、7的数,我们可以从3开始,不断累加,并测试它是否满足条件,直到求得第k个数。

代码如下:

public class KthNumber {
public int findKth(int k) {
int n;
int m = 3;
while (k != 0) {
n = m;
while(n%3 == 0)
n /= 3;
while(n%5 == 0)
n /= 5;
while(n%7 == 0)
n /= 7;
if (n == 1)
k--;
m = m + 2; // 只可能为奇数,累加2可以提高效率
}
return m - 2;
}
}

附:

我也不知道该附什么了。。。好久没看文学的东西了。。。

附句话吧:

我要把这个世界敲得明明白白。 0/1

以上

JAVA 算法练习(一)的更多相关文章

  1. JAVA算法系列 冒泡排序

    java算法系列之排序 手写冒泡 冒泡算是最基础的一个排序算法,简单的可以理解为,每一趟都拿i与i+1进行比较,两个for循环,时间复杂度为 O(n^2),同时本例与选择排序进行了比较,选择排序又叫直 ...

  2. JAVA算法系列 快速排序

    java算法系列之排序 手写快排 首先说一下什么是快排,比冒泡效率要高,快排的基本思路是首先找到一个基准元素,比如数组中最左边的那个位置,作为基准元素key,之后在最左边和最右边设立两个哨兵,i 和 ...

  3. java算法 蓝桥杯 乘法运算

    问题描述 编制一个乘法运算的程序. 从键盘读入2个100以内的正整数,进行乘法运算并以竖式输出. 输入格式 输入只有一行,是两个用空格隔开的数字,均在1~99之间(含1和99). 输出格式 输出为4行 ...

  4. java算法 蓝桥杯 扶老奶奶街

    一共有5个红领巾,编号分别为A.B.C.D.E,老奶奶被他们其中一个扶过了马路. 五个红领巾各自说话: A :我和E都没有扶老奶奶 B :老奶奶是被C和E其中一个扶过大街的 C :老奶奶是被我和D其中 ...

  5. java算法 蓝桥杯 高精度加法

    问题描述 在C/C++语言中,整型所能表示的范围一般为-231到231(大约21亿),即使long long型,一般也只能表示到-263到263.要想计算更加规模的数,就要用软件来扩展了,比如用数组或 ...

  6. java算法 蓝桥杯 格子位置

    问题描述 输入三个自然数N,i,j (1<=i<=N,1<=j<=N),输出在一个N*N格的棋盘中,与格子(i,j)同行.同列.同一对角线的所有格子的位置. 输入格式 输入共三 ...

  7. java算法----排序----(6)希尔排序(最小增量排序)

    package log; public class Test4 { /** * java算法---希尔排序(最小增量排序) * * @param args */ public static void ...

  8. java算法----排序----(5)归并排序

    package log; import java.util.Arrays; public class Test4 { /** * java算法---归并排序 * * @param args */ pu ...

  9. java算法----排序----(4)快速排序

    package log; public class Test4 { /** * java算法---快速排序 * * @param args */ public static void main(Str ...

  10. java算法----排序----(3)冒泡排序

    package log; public class Test4 { /** * java算法---冒泡排序 * * @param args */ public static void main(Str ...

随机推荐

  1. 基础知识 SafeSEH DEP ASLR SEHOP

    大多是0day书上抄的 1.SafeSEH 机制: 首先:内存中有SEH表的备份(加密过的) 在调用异常出来函数前,RtlDispatchException()函数中的行为: Ⅰ.检查异常处理链是否位 ...

  2. js 跳转链接

    1.跳转链接 在当前窗口打开 window.location.href="http://www.baidu.com" 等价于 <a href="baidu.com& ...

  3. 指令——history

    作用:查看历史命令 一般用于查看已经输入执行过的命令,也可以作为自己练习时的指标衡量,因为在历史命令里有行号显示.

  4. android 动画基础绘——view 动画(二)[补]

    前言 这个是对view 动画的补充,是一些view 动画的特殊使用场景. 回顾第一篇关于view 动画的,我介绍到view的动画都是针对元素本身的. 当我们开发view动画的时候,我们看到几个元素在做 ...

  5. js加密(十三)zzxt.hee.gov.cn md5

    1. url: http://zzxt.hee.gov.cn/ 2. target: 登录加密 3. 简单分析: 这个应该很容易就能找到加密的js,直接拿出来就好. 4. js: /* * md5 * ...

  6. Ctags命令

    ctags -R 生成目录下的tags文件 只生成php文件的 tags文件 ctags --langmap=php:.engine.inc.module.theme.php --php-kinds= ...

  7. ES6 之 对象属性的可枚举性和遍历

    1.Object.getOwnPropertyDescriptor() 解释:获取对对象属性的描述对象. let obj = { foo: 123 }; console.log(Object.getO ...

  8. 第二阶段scrum-7

    1.整个团队的任务量: 2.任务看板: 会议照片: 产品状态: 部署云服务器完成,链接数据库完成,消息收发正在制作.

  9. [题解] CF932E Team Work

    CF932E Team Work 你现在手里有\(n\)个人,你要选出若干个人来搞事情(不能不选),其中选择\(x\)个人出来的代价是\(x^k\),问所有方案的代价总和. 数据范围:\(1\le n ...

  10. NumPy 基于已有数据创建数组

    原文:Python Numpy 教程 章节 Numpy 介绍 Numpy 安装 NumPy ndarray NumPy 数据类型 NumPy 数组创建 NumPy 基于已有数据创建数组 NumPy 基 ...