- 博客(39)
- 收藏
- 关注
原创 java实现求一个数组中有多少个子序列
import java.util.Scanner;/** * 牛牛定义排序子序列为一个数组中一段连续的子序列,并且这段子序列是非递增或者非递减排序的。牛牛有一个长度为n的整数数组A, * 他现在有一个任务是把数组A分为若干段排序子序列,牛牛想知道他最少可以把这个数组分为几段排序子序列. * 如样例所示,牛牛可以把数组A划分为[1,2,3]和[2,2,1]两个排序子序列,至少需要划分为2个
2017-05-25 17:24:59 3056
原创 java牛牛新买了一本算法书,算法书一共有n页,页码从1到n。牛牛于是想了一个算法题目:在这本算法书页码中0~9每个数字分别出现了多少次?
参考《编程之美》132页求数字中1的个数/** * 牛牛新买了一本算法书,算法书一共有n页,页码从1到n。牛牛于是想了一个算法题目:在这本算法书页码中0~9每个数字分别出现了多少次? * * @author pomay * */import java.util.Scanner;public class Nowcode_pagecount{ static int count
2017-05-25 16:15:26 1396
原创 twoSum 必须要返回能够相加等于目标数字的两个数的索引,且index1必须要小于index2。
Given nums = [2, 7, 11, 15], target = 9,Because nums[0] + nums[1] = 2 + 7 = 9,return [1, 2].import java.util.HashMap;/** * 要求:这个函数twoSum必须要返回能够相加等于目标数字的两个数的索引,且index1必须要小于index2。 * 请注意一点,你返回的
2017-05-24 16:53:29 1078
原创 网易之小易参与了一个记单词的小游戏。游戏开始系统提供了m个不同的单词,小易记忆一段时间之后需要在纸上写出他记住的单词。小易一共写出了n个他能记住的单词, 如果小易写出的单词是在系统提供的,将获得
import java.util.ArrayList;import java.util.List;import java.util.Scanner;/** * 小易参与了一个记单词的小游戏。游戏开始系统提供了m个不同的单词,小易记忆一段时间之后需要在纸上写出他记住的单词。小易一共写出了n个他能记住的单词, * 如果小易写出的单词是在系统提供的,将获得这个单词长度的平方的分数。注意小易写
2017-05-23 18:41:14 476
原创 网易之小易有一块n*n的棋盘,棋盘的每一个格子都为黑色或者白色,小易现在要用他喜欢的红色去涂画棋盘。小易会找出棋盘中某一列中拥有相同颜色的最大的区域去涂画
import java.util.Arrays;import java.util.Scanner;/** * 小易有一块n*n的棋盘,棋盘的每一个格子都为黑色或者白色,小易现在要用他喜欢的红色去涂画棋盘。小易会找出棋盘中某一列中拥有相同颜色的最大的区域去涂画, * 帮助小易算算他会涂画多少个棋格。 * * @author pomay * */public class Wang
2017-05-23 18:12:22 2856
原创 网易之表达式从左往右依次计算
import java.util.Scanner;/** * 常规的表达式求值,我们都会根据计算的优先级来计算。比如*./的优先级就高于+-。但是小易所生活的世界的表达式规则很简单,从左往右依次计算即可, * 而且小易所在的世界没有除法,意味着表达式中没有/,只有(+, - 和 *)。现在给出一个表达式,需要你帮忙计算出小易所在的世界这个表达式的值为多少 * * @author po
2017-05-23 16:30:31 858
原创 网易之小易最近在数学课上学习到了集合的概念,集合有三个特征:1.确定性 2.互异性 3.无序性.需要根据给定的w,x,y,z,求出集合中一共有多少个元素。
import java.util.HashSet;import java.util.Scanner;import java.util.Set;/** * 小易最近在数学课上学习到了集合的概念,集合有三个特征:1.确定性 2.互异性 3.无序性. 小易的老师给了小易这样一个集合: S = { p/q | w * ≤ p ≤ x, y ≤ q ≤ z } * 需要根据给定的w,x,y,z
2017-05-23 15:24:29 2424
原创 网易之现在有n位工程师和6项工作(编号为0至5),现在给出每个人能够胜任的工作序号表
import java.util.Scanner;/** * 现在有n位工程师和6项工作(编号为0至5),现在给出每个人能够胜任的工作序号表(用一个字符串表示,比如:045,表示某位工程师能够胜任0号,4号,5号工作 * )。现在需要进行工作安排,每位工程师只能被安排到自己能够胜任的工作当中去,两位工程师不能安排到同一项工作当中去。 * 如果两种工作安排中有一个人被安排在的工作序号不一样
2017-05-23 11:34:42 1447
原创 网易之小易有一个长度为n序列,小易想移除掉里面的重复元素,但是小易想是对于每种元素保留最后出现的那个
import java.util.ArrayList;import java.util.List;import java.util.Scanner;/** * 小易有一个长度为n序列,小易想移除掉里面的重复元素,但是小易想是对于每种元素保留最后出现的那个。小易遇到了困难,希望你来帮助他。 * * @author pomay * */public class Wangyi_du
2017-05-22 12:01:57 1525
原创 java实现输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head
/** * 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意, * 输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)。 第一步:根据原始链表的每个结点N创建对应的结点N' * 第二步:设置复制出来结点的random.假设原始结点的随机指向S,复制出来结点的random指向S后一
2017-05-19 17:08:08 3961 1
原创 java实现输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径
import java.util.ArrayList;/** * 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径 * * @author pomay * */public class Solution_treenodepath{ // 存放所有路径 ArrayList> lists
2017-05-18 11:25:29 2890
原创 java实现输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果
/** * 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 * * @author pomay * */public class Solution_afterbianli{ public boolean VerifySquenceOfBST(int[] sequence) { if
2017-05-17 18:51:14 619 1
原创 java实现从上往下打印出二叉树的每个节点,同层节点从左至右打印。
import java.util.ArrayList;/*public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }}*//** *
2017-05-17 17:53:09 957
原创 java判断一个序列是否可能是另外一个压栈序列的弹出序列
import java.util.Stack;/** * 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4, * 5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意: * 这两个序列的长度是相等的) * * @au
2017-05-16 16:54:45 802
原创 java实现定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数
import java.util.Stack;/** * 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。 * * @author pomay * */public class Solution_minstack{ // 数据栈 Stack dataStack = new Stack(); // 辅助栈 Stack minStack = new S
2017-05-16 16:00:06 2550
原创 网易之使用k次魔力之后魔力手环的状态
import java.util.Scanner;/** * * 小易拥有一个拥有魔力的手环上面有n个数字(构成一个环),当这个魔力手环每次使用魔力的时候就会发生一种奇特的变化:每个数字会变成自己跟后面一个数字的和( * 最后一个数字的后面一个数字是第一个),一旦某个位置的数字大于等于100就马上对100取模(比如某个位置变为103,就会自动变为3). * 现在给出这个魔力手环的构成
2017-05-16 13:34:45 591
原创 java实现输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字
import java.util.ArrayList;/** * 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 * 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. * * @author pomay * */pu
2017-05-15 11:04:35 7010
原创 网易之幼儿园小朋友调整队形
import java.util.Scanner;/** * 在幼儿园有n个小朋友排列为一个队伍,从左到右一个挨着一个编号为(0~n-1)。其中有一些是男生,有一些是女生,男生用'B'表示,女生用'G'表示。 * 小朋友们都很顽皮,当一个男生挨着的是女生的时候就会发生矛盾。作为幼儿园的老师,你需要让男生挨着女生或者女生挨着男生的情况最少。你只能在原队形上进行调整, * 每次调整只能让相邻
2017-05-12 18:12:25 979
原创 牛客之统计n个单词中有多少种循环单词
import java.util.Scanner;/** * 如果一个单词通过循环右移获得的单词,我们称这些单词都为一种循环单词。 例如:picture 和 turepic 就是属于同一种循环单词。 * 现在给出n个单词,需要统计这个n个单词中有多少种循环单词。 * * @author pomay * */public class Nowcode_cycleword{ pu
2017-05-12 14:43:36 656
原创 牛客之好多鱼
import java.util.Scanner;/** * 牛牛有一个鱼缸。鱼缸里面已经有n条鱼,每条鱼的大小为fishSize[i] (1 ≤ i ≤ * n,均为正整数),牛牛现在想把新捕捉的鱼放入鱼缸。鱼缸内存在着大鱼吃小鱼的定律。经过观察,牛牛发现一条鱼A的大小为另外一条鱼B大小的2倍到10倍( * 包括2倍大小和10倍大小),鱼A会吃掉鱼B。考虑到这个,牛牛要放入的鱼就需要保
2017-05-12 10:59:58 353
原创 网易之双核问题
import java.util.Scanner;/** * 一种双核CPU的两个核能够同时的处理任务,现在有n个已知数据量的任务需要交给CPU处理, * 假设已知CPU的每个核1秒可以处理1kb,每个核同时只能处理一项任务。 * n个任务可以按照任意顺序放入CPU进行处理, * 现在需要设计一个方案让CPU处理完这批任务所需的时间最少,求这个最小的时间。 * @author po
2017-05-12 09:21:16 289
原创 网易之跑去公司
/** * 终于到周末啦!小易走在市区的街道上准备找朋友聚会,突然服务器发来警报,小易需要立即回公司修复这个紧急bug。 * 假设市区是一个无限大的区域,每条街道假设坐标是(X,Y),小易当前在(0,0)街道,办公室在(gx,gy)街道上。 * 小易周围有多个出租车打车点,小易赶去办公室有两种选择,一种就是走路去公司,另外一种就是走到一个出租车打车点, * 然后从打车点的位置坐出租车去公司
2017-05-12 09:17:15 310
原创 java实现操作给定的二叉树,将其变换为源二叉树的镜像。
二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5/**public class TreeNode { int va
2017-05-11 17:03:45 396
原创 java实现输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。public class Solution{ public void reOrderArray(int[] array) { // 趟数 for (int i = 0; i < array.length; i+
2017-05-11 12:12:08 1752
原创 java实现给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
public class Solution { public double Power(double base, int exponent) { double result = 1.0; if (exponent == 0) return 1; else if (exponent > 0) { for (int i = 1; i <= exponen
2017-05-11 12:11:10 790
原创 java实现输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
import java.util.Scanner;public class Solution_erjinzhiNo1{ public int NumberOf1(int n) { int count = 0; while (n != 0) { ++count; n = (n - 1) & n; } return count; } public st
2017-05-11 12:09:03 672
原创 java实现在Excel2003中,用A表示第一列,B表示第二列...Z表示第26列,AA表示第27列,AB表示第28列...依次列推。请写出一个函数, 输入用字母表示的列号编码,输出它是第几列
public class Solution_excel2003{ public int Find(String str) { char[] strArr = str.toCharArray(); int exp = 0; int sum = 0; for (int i = strArr.length - 1; i >= 0; i--) { int num = s
2017-05-11 12:07:53 3342
原创 java实现我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
public class Solution_juzhenfugai{ public int Fibonacci(int n) { int result[] = { 1, 2 }; if (n < 2) { return result[n - 1]; } int f0 = 1; int f1 = 2; int f2 = 0; for (int i =
2017-05-11 12:06:59 989
原创 java实现一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
public class Solution_biantaiqingwatiao{ public int Fibonacci(int n) { int m = (int) Math.pow(2, n - 1); return m; } public static void main(String[] args) { Scanner sc = new Scanner(Sys
2017-05-11 12:05:16 1477
原创 java实现一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
public class Solution_qingwatiao{ public int RectCover(int target) { int result[] = { 0, 1, 2 }; if (target <= 2) { return result[target]; } int f0 = 1; int f1 = 2; int f2 = 0;
2017-05-11 12:04:36 698
原创 java实现斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。 n<=39
public class Solution_feibonaqi{ public int Fibonacci(int n) { int result[] = { 0, 1 }; if (n < 2) { return result[n]; } int f0 = 0; int f1 = 1; int f2 = 0; for (int i = 2; i
2017-05-11 12:03:47 10594
原创 java实现把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如{3,4,5,1,2}为{1,2,3,4,5}
public class Solution_xuanzhuanshuzu{ public int minNumberInRotateArray(int[] array) { // 如果数组长度为0则返回-1 if (array.length == 0) { return -1; } int left = 0; int right = array.length -
2017-05-11 12:02:48 3295
原创 java两个栈实现队列
import java.util.Stack;public class Solution_2zhan1duilie{ Stack stack1 = new Stack(); Stack stack2 = new Stack(); public void push(int node) { stack1.push(node); }
2017-05-11 12:00:55 261
原创 java实现重建二叉树
class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } }public class Solution_erchashu{ public TreeNode reConstructBinaryTree(int [] pre,int []
2017-05-11 11:59:56 322
原创 java实现从尾到头打印链表每个节点的值
import java.util.ArrayList;class ListNode{ int val; ListNode next = null; ListNode(int val) { this.val = val; }}public class Solution_lianbiao{ ArrayList arrayList = new ArrayList();
2017-05-11 11:57:45 5235
原创 java实现输入两棵二叉树A,B,判断B是不是A的子结构
class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }}public class FindSonTree { public boolean HasSubtree(TreeNode root
2017-05-11 11:50:35 1039
原创 java实现输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}public class MergeTwoList {public ListNode Merge(ListNode list1, ListNode list2) {if (list1 == null)return
2017-05-10 18:58:35 1067
原创 java实现输入一个链表,反转链表后,输出链表的所有元素。
public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}public class Solution {public ListNode ReverseList(ListNode head) {if (head =
2017-05-10 18:29:12 2825
原创 java实现输入一个链表,输出该链表中倒数第k个结点。
package com.pomay.offer;/** * 输入一个链表,输出该链表中倒数第k个结点。 * * @author pomay * */class ListNode {int val;ListNode next = null;ListNode(int val) {this.val = val;}}publ
2017-05-10 15:08:52 1468
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人