插入排序作为十大排序之一,是一种简单且稳定的排序算法算法思想相对直观,可以联想自己平常打扑克牌,发牌时自己边摸牌边整理牌顺序的场景算法思想:A[i] 与 A[i] 之前的元素 A[j逐个进行比较,如果 A[i]<A[j],则交换,否则 j++,A[j] 往后移一位,直到指针 i=j 时 A[j] 停止移动,A[i] 往后移一位,A[j] 重新从 0 开始到 i 依此类推,直...
一、问题描述给定 一个 m x n 的棋盘,只能向右或者向下走,,求棋子从左上角走到右下角的情况一共有多少种?二、结题思路状态转移方程:f[m][n] = f[m-1][n]+f[m][n-1]三、代码实现public class Maze { public static void main(String[] args) { int result = new Maze...
稀疏数组稀疏数组(sparse array)是一种只为数组中的非零元素分配内存的特殊类型数组内存中存储 了稀疏数组中非零元素的下标和值public class SparseArray { /** * <p> * 稀疏数组可以简单的看作为是压缩,在开发中也会使用到。比如将数据序列化到磁盘上,减少数据量,在IO过程...
冒泡排序作为十大排序之一,是一种简单且稳定的排序算法算法思想可以联想为向湖中下石头和较轻的石头变成泡泡上浮的过程想象每一块石头处在相应的高度,从上往下相邻两个石头进行比较,较大的石头往下沉,替代下一石头的位置较轻的石头像泡泡一样往上浮一个单位,直到这一轮最重的石头沉到湖底,此趟比较才结束此时,最重的石头已经再湖底,不需要再参加下一趟排序,可以想象为以及与湖底融为一体了可以得到,每次排序...
需求来源:4399之马踏棋盘小游戏:http://www.4399.com/flash/146267_2.htm游戏规则:将国际象棋马放入一个6x6的棋盘中,随机指定一个初始位置,求棋子走完棋盘的步法解题思路:二维数组模拟棋盘,记录其步数,再使用一个boolean型的二维数组模拟棋盘,判断其位置是否已经走过 使用Java的Point类表示棋子,根据国际象棋...
穷举搜索的例子:Google方程式题目:有一个由字
6. Z 字形变换将一个给定字符串根据给定的行数,以从上往下、从左到右进行Z 字形排列。比如输入字符串为 "LEETCODEISHIRING"行数为 3 时,排列如下:L C I RE T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"LCIRETOESIIGEDHN"。请你实现这个将字符串进行指定行数变换的函数:string convert(string s, int numRows);...
一、问题描述根据 逆波兰表示法,求表达式的值。有效的算符包括 +、-、*、/ 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明 整数除法只保留整数部分。 给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。示例 1输入:tokens = ["2","1","+","3","*"]输出:9解释:该算式转化为常见的中缀算术表达式为:((2 + 1) * 3) = 9示例 2输入:tokens = ["4","1...
二分递归:数组求和1、代码实现:package com.mooc.arithmetic;/** * 二分递归:数组求和 * @author com *分治思想:先把问题分解成两个子问题,再把两个子问题递归地分解成最简单的子问题, * 最后再把所有的子问题合并 */public class BinarySum { static int A[] = {15,...
import java.math.BigInteger;import java.util.Scanner;/* * 大数运算 * 走阶梯:一次只能走一阶或者两阶,一共有N个阶梯(0<N<=100) * 问题:一共有多少个走法? * 操作:输入N个阶梯,输出sum种方法 */public class Main1 { static Scanner sc = new...
import java.util.Scanner;/** 输入两个数,求这两个数的最大公约数和最小公倍数* 算法思想:(非递归)最大公约数和最小公倍数* 最大公约数:for循环从二者最小的数到1遍历,能共同 被整除的最大整数即为最大公约数* 最小公倍数:最大公约数*两个数与最大公约数的商*/public class Main { static Scan...
import java.util.Arrays;/* * 标题:全排列 */public class Main { static int A[] = {1,2,3,4}; public static void main(String[] args) { f(A,0); } public static void f(int A[],int start) { if(st...
import java.util.Scanner;/* * 标题:求最大公约数和
入门训练 Fibonacci数列 (Java实现)问题描述Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。输入格式输入包含一个整数n。输出格式输出一行,包含一个整数,表示Fn除以10007的余数。...
标题:全球变暖你有一张某海域NxN像素的照片,"."表示海洋、"#"表示陆地,如下所示:........##.....##........##...####....###........其中"上下左右"四个方向上连在一起的一片陆地组成一座岛屿。例如上图就有2座岛屿。 由于全球变暖导致了海面上升,科学家预测未来几十年,岛屿边缘一个像素的范围会被海水淹没。具体来说如果一...
煤球数目有一堆煤球,堆成三角棱锥形。具体:第一层放1个,第二层3个(排列成三角形),第三层6个(排列成三角形),第四层10个(排列成三角形),....如果一共有100层,共有多少个煤球?请填表示煤球总数目的数字。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。package com.gxwz.test;/* * 标题:煤球数目(递归实现) *...
package com.wzxy.test;import java.util.Scanner;/* * 标题:日期问题 */public class Main{ static int year,month,day,Mon; static Scanner sc = new Scanner(System.in); static String str = sc.next(); ...
标题:最大公共子串最大公共子串长度问题就是:求两个串的所有子串中能够匹配上的最大长度是多少。比如:"abcdkkk" 和 "baabcdadabc",可以找到的最长的公共子串是"abcd",所以最大公共子串长度为4。下面的程序是采用矩阵法进行求解的,这对串的规模不大的情况还是比较有效的解法。请分析该解法的思路,并补全划线部分缺失的代码。public class Main ...
标题: 分巧克力 儿童节那天有K位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。 小明一共有N块巧克力,其中第i块是Hi x Wi的方格组成的长方形。 为了公平起见,小明需要从这 N 块巧克力中切出K块巧克力分给小朋友们。切出的巧克力需要满足: 1. 形状是正方形,边长是整数 2. 大小相同 例如一块6x5的巧克力可以切出6块2x2...
标题:纸牌三角形A,2,3,4,5,6,7,8,9 共9张纸牌排成一个正三角形(A按1计算)。要求每个边的和相等。下图就是一种排法(如有对齐问题,参看p1.png)。 这样的排法可能会有很多。如果考虑旋转、镜像后相同的算同一种,一共有多少种不同的排法呢?请你计算并提交该数字。注意:需要提交的是一个整数,不要提交任何多余内容。package com.gxw...
一、重要知识要点1、穷举法 2、枚举法 3、动态规划 4、回溯法 5、图论 6、深度优先搜索(DFS) 7、广度优先搜索(BFS )8、二叉树 9、递归 10、分治法、矩阵法 11、排列组合 12、素数、质数、水仙花数 13、欧几里得定理gcd14、求最大公约数、最小公倍数 15、海伦公式(求三角形面积) 16、博弈论 17、贪心...
问题描述实现代码package com.lanqiao.JavaB2019;/** * 试题D:数的分解 * @author com * 结果:40785 */public class JavaD { public static void main(String[] args) { f(); } public static int f() { int co...
问题描述方法一package com.gxwz.lanqiaobei; import java.util.ArrayList;import java.util.List; /** * 不同子串 * @author com * */public class JavaB2019 {// static String str = "aaab"; //substring[...
标题:快速排序以下代码可以从数组a[]中找出第k小的元素。 它使用了类似快速排序中的分治算法,期望时间复杂度是O(N)的。请仔细阅读分析源码,填写划线部分缺失的内容。package com.wzxy.test;import java.util.Random;public class Main2{ public static void main(String arg...
标题:递增三元组给定三个整数数组A = [A1, A2, ... AN],B = [B1, B2, ... BN],C = [C1, C2, ... CN],请你统计有多少个三元组(i, j, k) 满足:1. 1 <= i, j, k <= N 2. Ai < Bj < Ck 【输入格式】第一行包含一个整数N。第二行包含N个整数A1, ...
问题描述代码实现import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Map.Entry;import java.util.Scanner;/** * 试题G:外卖店优先级 * @author c...
问题描述代码实现/** * 试题D:数的分解 * 第40785种:1999 19 1 * @author com * */public class Disintegrate { public static void main(String[] args) { core(); } public static void core() { int n = 0;...
问题描述实现代码:package com.gxwz.lanqiaobei;import java.util.Arrays;/** * 试题C:数列求值 * @author com */public class Sequence { public static void main(String[] args) { core(); } public sta...
问题描述实现代码import java.util.Scanner;public class SumNumbers { static Scanner sc = new Scanner(System.in); public static void main(String[] args) { core(); } public static void core()...
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号