小算法
hsj1213522415
在校学生
展开
-
5.例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。import java.util.ArrayList;public class Solution { public int minNumberInRotateArray(in原创 2017-05-10 09:12:15 · 401 阅读 · 0 评论 -
24.从单向链表中删除指定值的节点
题目描述输入一个单向链表和一个节点的值,从单向链表中删除等于该值的节点,删除后如果链表中无节点则返回空指针。链表结点定义如下:struct ListNode{ int m_nKey; ListNode* m_pNext;};详细描述:本题为考察链表的插入和删除知识。链表的值不能重复原创 2017-06-11 10:15:58 · 416 阅读 · 0 评论 -
23.按字节数截取字符串
题目描述编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保证汉字不被截半个,如"我ABC"4,应该截为"我AB",输入"我ABC汉DEF"6,应该输出为"我ABC"而不是"我ABC+汉的半个"。一般的都是按照el表达式或者字符的ascii码来求的,这里我列出两种方法,一种是按ascii码,一种是按照中文和英文所占用的字节数来判断原创 2017-06-11 09:46:57 · 349 阅读 · 0 评论 -
20.蛇形矩阵打印
题目描述题目说明蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。分析:根据规律求解,如示例:行间隔分别为:2,3,4,53,4,54,55第一列间隔分别为:1,2,3,4代码:import java.util.Scanner;public class Main{ public stati原创 2017-06-09 10:27:29 · 634 阅读 · 0 评论 -
16.字符串加密解密
题目描述1、对输入的字符串进行加解密,并输出。2加密方法为:当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B;字母Z时则替换为a;当内容是数字时则把该数字加1,如0替换1,1替换2,9替换0;其他字符不做变化。3、解密方法为加密的逆过程。本题基本考的是代码编写能力,没有复杂算法的思想,原创 2017-06-07 11:27:29 · 918 阅读 · 0 评论 -
25.输出单向链表中倒数第k个结点
题目描述输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第1个结点为链表的尾指针。链表结点定义如下:struct ListNode{ int m_nKey; ListNode* m_pNext;};详细描述:接口说明原型:ListNode* FindKthToTail原创 2017-06-11 11:37:19 · 271 阅读 · 0 评论 -
4.用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。import java.util.Stack;public class Solution { Stack stack1 = new Stack(); Stack stack2 = new Stack(); public void push(int node) {原创 2017-05-10 08:48:30 · 443 阅读 · 0 评论 -
3.重构二叉树
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。/** * Definition for binary tree * public class TreeNode { * int val; *原创 2017-05-09 21:31:09 · 222 阅读 · 0 评论 -
2.输入一个链表,从尾到头打印链表每个节点的值
输入一个链表,从尾到头打印链表每个节点的值/*** public class ListNode {* int val;* ListNode next = null;** ListNode(int val) {* this.val = val;* }* }**/import java.原创 2017-05-09 20:41:02 · 639 阅读 · 0 评论 -
1.二维数组中的查找
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。public class Solution { public boolean Find(int target, int [][] array) { int rowCount = array.length-原创 2017-05-09 20:01:17 · 166 阅读 · 0 评论 -
31.java解决百钱买百鸡的问题
题目描述公元前五世纪,我国古代数学家张丘建在《算经》一书中提出了“百鸡问题”:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?import java.util.Scanner;public class Main{ public static void main(String[] args){ Scanner原创 2017-06-16 10:42:50 · 1647 阅读 · 0 评论 -
14.字符串排序
题目描述编写一个程序,将输入字符串中的字符按如下规则排序。规则1:英文字母从A到Z排列,不区分大小写。 如,输入:Type 输出:epTy规则2:同一个英文字母的大小写同时存在时,按照输入顺序排列。 如,输入:BabA 输出:aABb规则3:非英文字母的其它字符保持原来的位置。 如,输入:By?e 输出:Be?y原创 2017-06-07 09:39:32 · 290 阅读 · 0 评论 -
13.删除字符串中出现次数最少的字符
题目描述实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。输入描述:字符串只包含小写英文字母, 不考虑非法输入,输入的字符串长度小于等于20个字节。输出描述:删除字符串中出现次数最少的字符后的字符串。import java.util.Scanner;import java原创 2017-06-07 09:19:42 · 381 阅读 · 0 评论 -
5.字符个数统计
题目描述编写一个函数,计算字符串中含有的不同字符的个数。字符在ACSII码范围内(0~127)。不在范围内的不作统计。public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in);原创 2017-06-03 11:13:46 · 367 阅读 · 0 评论 -
2.•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组; •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
题目:•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组; •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。import java.util.*;public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System原创 2017-05-26 14:33:10 · 3412 阅读 · 0 评论 -
1.计算字符串最后一个单词的长度,单词以空格隔开。
题目:计算字符串最后一个单词的长度,单词以空格隔开。import java.util.*;public class Main{ public static void main(String[] args){ //String str = "hello world"; Scanner scan = new Scanner(System.in);原创 2017-05-26 10:28:15 · 1136 阅读 · 0 评论 -
6.求int型正整数在内存中存储时1的个数
题目描述输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。整数在内存中存储是按二进制存储的,所以要转成二进制import java.util.Scanner;public class Main{ public static void main(String[] args){ Scanner sc = new Scanner原创 2017-06-04 10:12:53 · 303 阅读 · 0 评论 -
3.写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )
题目描述写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )import java.util.Scanner;import java.lang.Math;public class Main{ public static void main(String[] args){ Scanner sc = new Sca原创 2017-05-26 16:43:22 · 3619 阅读 · 0 评论 -
亚人中的flat(flood)现象
是在精神极度激动情况下,一次性制造多个IBM的现象,比如中村慎也事件,亚人第二季中的第13集中永井圭在对战佐藤的最后也同时出现了很多的IBM,致使佐藤暂时被捕原创 2016-12-24 15:52:06 · 24431 阅读 · 2 评论 -
7.句子逆序
题目描述将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符import java.util.Scanner;public class Main{ public static void main(String[] args){ Sca原创 2017-06-04 09:27:00 · 207 阅读 · 0 评论 -
27.找出字符串中第一个只出现一次的字符
题目描述找出字符串中第一个只出现一次的字符分析:判断一个字符在字符串中的第一个索引和最后一个索引是否相同import java.util.Scanner;public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(Syste原创 2017-06-14 09:15:45 · 269 阅读 · 0 评论 -
17.单词倒排
题目描述对字符串中的所有单词进行倒排。说明:1、每个单词是以26个大写或小写英文字母构成;2、非构成单词的字符均视为单词间隔符;3、要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符;4、每个单词最长20个字母;import java.util.Scanner;原创 2017-06-08 09:14:00 · 394 阅读 · 0 评论 -
11.简单密码变换
变换原则:: 1--1, abc--2, def--3, ghi--4, jkl--5, mno--6, pqrs--7, tuv--8 wxyz--9, 0--0,就这么简单,渊子把密码中出现的小写字母都变成对应的数字,数字和其他的符号都不做变换,import java.util.Scanner;import java.util.*;public class Main{ publ原创 2017-06-06 09:37:45 · 560 阅读 · 0 评论 -
10.java实现简单错误记录
题目描述开发一个简单错误记录功能小模块,能够记录出错的代码所在的文件名称和行号。 处理: 1、 记录最多8条错误记录,循环记录,对相同的错误记录(净文件名称和行号完全匹配)只记录一条,错误计数增加; 2、 超过16个字符的文件名称,只记录文件的最后有效16个字符; 3、 输入的文件可能带路径,记录文件名称不能带路径。原创 2017-06-05 14:37:22 · 633 阅读 · 0 评论 -
45.找出所有滑动窗口里数值的最大值
题目描述给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3,[4,2,6],原创 2017-06-01 16:36:30 · 556 阅读 · 0 评论 -
33.求圆圈中最后剩下的数
题目描述每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0...m-1报数....这样下去原创 2017-05-29 19:25:21 · 379 阅读 · 0 评论 -
32.翻转单词顺序列
题目描述:写程序将“student. a am I”反转成“I am a student”public class Solution { public String ReverseSentence(String str) { if(str==null){ return null; } if(str.trim()原创 2017-05-28 16:40:42 · 233 阅读 · 0 评论 -
31.左旋转字符串
题目描述汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”?public class Solution { public String LeftRotat原创 2017-05-28 16:18:23 · 246 阅读 · 0 评论 -
30.输出所有和为S的连续正数序列。序列内按照从小至大的顺序,序列间按照开始数字从小到大的顺序
题目描述:输出所有和为s的连续正数序列?import java.util.ArrayList;/**本题的解题思路是:这个问题可以看成是等差数列求和问题,差为1,和就是s*根据高中时候等差数列求和的公式为:数列最后一个数为an=a1+(n-2)*d 数列的和为:sn=n*an+n*(n-1)*d*/public class Solution { public ArrayLi原创 2017-05-27 20:19:23 · 616 阅读 · 0 评论 -
29.输入一棵二叉树,判断该二叉树是否是平衡二叉树。
题目描述输入一棵二叉树,判断该二叉树是否是平衡二叉树。public class Solution { public boolean isBalanced = true; public boolean IsBalanced_Solution(TreeNode root) { getDepth(root); return isBalanc原创 2017-05-27 16:19:40 · 402 阅读 · 0 评论 -
29.求二叉树的深度
题目描述输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。这里采用的是非递归遍历(层次遍历方法)import java.util.Queue;import java.util.LinkedList;/**public class TreeNode { int val = 0;原创 2017-05-27 09:16:24 · 217 阅读 · 0 评论 -
34.求1+2+3+...+n
题目描述求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)?方法一:import java.lang.Math;public class Solution { public int Sum_Solution(int n) { int sum = (int)Ma原创 2017-05-29 19:45:21 · 350 阅读 · 0 评论 -
28.输入两个链表,找出它们的第一个公共结点。
题目描述输入两个链表,找出它们的第一个公共结点。解题思路:先求两个链表的长度,决定让哪一个链表先走,然后在判断节点是否相等;/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/p原创 2017-05-27 08:52:10 · 425 阅读 · 0 评论 -
35.不用加减乘除做加法
题目描述写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。不用加减乘除,那只能用位运算了public class Solution { public int Add(int num1,int num2) { while(num2!=0){ int temp = num1^num2;原创 2017-05-29 20:07:12 · 197 阅读 · 0 评论 -
34.把字符串转换成整数
题目描述将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0 ?import java.util.*;public class Solution { public int StrToInt(String str) { if(str.length()==0||str.equals("")){原创 2017-05-29 20:37:24 · 275 阅读 · 0 评论 -
44.序列化二叉树,反序列化二叉树
题目描述请实现两个函数,分别用来序列化和反序列化二叉树/*public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }原创 2017-06-01 15:07:18 · 208 阅读 · 0 评论 -
53.从左向右层次打印二叉树
题目描述从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。import java.util.ArrayList;import java.util.Queue;import java.util.LinkedList;/*public class TreeNode { int val = 0; TreeNode left = null;原创 2017-05-31 09:32:32 · 311 阅读 · 0 评论 -
51.之字形顺序打印二叉树
import java.util.ArrayList;import java.util.Queue;import java.util.LinkedList;import java.util.Collections;/*public class TreeNode { int val = 0; TreeNode left = null; TreeNode right原创 2017-05-31 09:08:10 · 180 阅读 · 0 评论 -
40.求二叉树的下一个结点
题目描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。针对题意,总共会出现两种情况:当前节点有右子树,则下一节点是右子树的最左边节点;当前节点没有右子树,则当前节点可以为左孩子,则下一节点为当前节点的父节点,如果当前节点为右孩子,则,下一节点为当前节点的父节点的父节点;代码如下:原创 2017-05-31 08:03:25 · 221 阅读 · 0 评论 -
39.删除链表中重复的结点
题目描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5/* public class ListNode { int val; ListNode next = null; ListNode(int val) { th原创 2017-05-30 11:35:35 · 232 阅读 · 0 评论