![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
牛客练习
Light丶Long
真正的大师永远都怀有一颗学徒的心
展开
-
只允许遍历一次,找出只出现了一次的数
题目:只允许遍历一次,找出只出现了一次的数题目分析:只允许遍历一次,所以这里用到位操作,当两个相同的数字异或时,返回值为0,所以经过一系列的异或后,返回值为只出现了一次的那个数。代码如下:public class TestDome1 { public static void main(String[] args) { int[] array = new...原创 2019-04-04 22:54:13 · 477 阅读 · 0 评论 -
reentrantLock与synchronized的共同点与区别有什么
面试题:reentrantLock与synchronized的关系和区别()共同点语义一样,1.都是可重入锁,2.都属于独占锁的实现不同点a.synchronized 关键字 属于JVM层面的实现 reentrantLock 属于Java语言层面的实现b.reentrantLock具备synchrnized锁不具备的功能,如:响应中断,支持超时,支持费阻塞式的获取锁。c.s...原创 2019-07-04 21:10:39 · 458 阅读 · 0 评论 -
超长的正整数相加
题目描述请设计一个算法完成两个超长正整数的加法。接口说明/*请设计一个算法完成两个超长正整数的加法。输入参数:Stringaddend:加数Stringaugend:被加数返回值:加法结果*/publicStringAddLongInteger(Stringaddend,Stringaugend){/*在这里实现功能*/retu...原创 2019-07-15 12:19:29 · 538 阅读 · 0 评论 -
奥巴马一起编程-按照指定格式输出正方形(美国总统奥巴马不进呼吁所有人都学习编程,甚至以身作则编写代码,,输入在一行中给出的正方形的边长N和组成正方形的某种字符,间隔一个空格)
题目描述;代码如下:import javax.swing.plaf.synth.SynthScrollBarUI;import java.util.Scanner;/** * Created with IntelliJ IDEA * Description:跟奥巴马一起编程,输出正方形 * User:Light_Long * Date:...原创 2019-07-15 12:31:54 · 3892 阅读 · 0 评论 -
有一个XxY的网格,一个机器人只能走格点且只能向右或向下走,要从左上角走到右下角。请设计一个算法,计算机器人有多少种走法。 给定两个正整数int x,int y,请返回机器人的走法数目。保证x+y小
题目:有一个XxY的网格,一个机器人只能走格点且只能向右或向下走,要从左上角走到右下角。请设计一个算法,计算机器人有多少种走法。给定两个正整数intx,inty,请返回机器人的走法数目。保证x+y小于等于12。测试样例:2,2返回:2代码如下:/** * Created with IntelliJ IDEA * Description: * User:L...原创 2019-07-15 20:34:57 · 1493 阅读 · 0 评论 -
验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。 例如: 1^3=1 2^3=3+5 3^3=7+9+11 4^3=13+15+17+19
题目描述:验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。例如:1^3=12^3=3+53^3=7+9+114^3=13+15+17+19输入描述:输入一个int整数输出描述:输出分解后的string示例1输入6输出31+33+35+37+39+41代码如下:package www.light;...原创 2019-07-16 16:18:07 · 8674 阅读 · 0 评论 -
变态的跳台阶
题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法台阶。题目解析:假设有n个台阶,第n个台阶一定会站上去,其他n - 1个台阶则是有两种情况,有或者没有。所以这个问题就转化了。代码如下:public class Solution { public int JumpFloorII(int target)...原创 2019-07-23 21:37:45 · 107 阅读 · 0 评论 -
饥饿的小易 小易总是感觉饥饿,所以作为章鱼的小易经常出去寻找贝壳吃。最开始小易在一个初始位置x_0。对于小易所处的当前位置x,他只能通过神秘的力量移动到 4 * x + 3或者8 * x + 7。因
题目描述: 小易总是感觉饥饿,所以作为章鱼的小易经常出去寻找贝壳吃。最开始小易在一个初始位置x_0。对于小易所处的当前位置x,他只能通过神秘的力量移动到 4 * x + 3或者8 * x + 7。因为使用神秘力量要耗费太多体力,所以它只能使用神秘力量最多100,000次。贝壳总生长在能被1,000,000,007整除的位置(比如:位置0,位置1,000,000,007,位置2,000...原创 2019-07-17 15:41:46 · 1185 阅读 · 1 评论 -
洗牌-牛客 第一行一个数T(T ≤ 100),表示数据组数。对于每组数据,第一行两个数n,k(1 ≤ n,k ≤ 100),接下来一行有2n个数a1,a2,...,a2n(1 ≤ ai ≤ 1000
题目描述:洗牌在生活中十分常见,现在需要写一个程序模拟洗牌的过程。 现在需要洗2n张牌,从上到下依次是第1张,第2张,第3张一直到第2n张。首先,我们把这2n张牌分成两堆,左手拿着第1张到第n张(上半堆),右手拿着第n+1张到第2n张(下半堆)。接着就开始洗牌的过程,先放下右手的最后一张牌,再放下左手的最后一张牌,接着放下右手的倒数第二张牌,再放下左手的倒数第二张牌,直到最后放下左手的第一张牌...原创 2019-07-20 16:34:28 · 10217 阅读 · 0 评论 -
二叉树的镜像
题目描述:操作给定的二叉树,将其变换为源二叉树的镜像。输入描述:二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5...原创 2019-07-20 16:38:06 · 84 阅读 · 0 评论 -
求解斐波那契数列-递归与非递归解法
题目描述:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39代码描述:非递归:public class Solution { public int Fibonacci(int n) { if(n == 0) { return 0; } ...原创 2019-07-22 20:53:17 · 618 阅读 · 0 评论 -
求1~1000的数字的阶乘末尾有几个0。
解题思路,通常情况下,想法肯定是通过循环,把所给的数字直接通过for循环来全部乘起来,然后再从后往前遍历来数0的个数,理论来讲这个方法没毛病,但是问题是目前所知的数字有能存储1000的阶乘大小的类型吗,答案是否定的,然后问题就来了,那这问题应该怎么解决。 观察情况发现,如果末尾为0,则一定是2或者2的倍数与5所相乘得到的,纵观1到1000之间,2的倍数的数字太多态度,...原创 2019-07-13 21:38:46 · 2467 阅读 · 0 评论 -
反转字符串2-力扣541
题目:给定一个字符串和一个整数 k,你需要对从字符串开头算起的每个 2k 个字符的前k个字符进行反转。如果剩余少于 k 个字符,则将剩余的所有全部反转。如果有小于 2k 但大于或等于 k 个字符,则反转前 k 个字符,并将剩余的字符保持原样。示例:输入: s = "abcdefg", k = 2输出: "bacdfeg"解题思路:首先判断字符串是否为空,为空返回null。然后判...原创 2019-05-31 21:20:24 · 398 阅读 · 0 评论 -
位操作复习题之反转二进制位
题目:颠倒给定的 32 位无符号整数的二进制位。示例 1:输入: 00000010100101000001111010011100输出: 00111001011110000010100101000000解释: 输入的二进制串 00000010100101000001111010011100 表示无符号整数 43261596, 因此返回 964176192,其二进...原创 2019-05-27 22:51:57 · 505 阅读 · 0 评论 -
字符串转化(压缩) “aabbccdaa” -> "a2b2c2d1a2"
字符串转化(压缩) “aabbccdaa” -> "a2b2c2d1a2" 函数原型:public static String stringCompress(String str) { } */代码如下:public class Test { public static String stringCompress(S...原创 2019-04-12 15:20:29 · 1884 阅读 · 0 评论 -
2、统计字符串中数字个数 如:"abc21b416u" ===> 输出5
统计字符串中数字个数//如:"abc21b416u" ===> 输出5 函数原型:public static int isNumeric(String str){ }*/代码如下:public class Test2 { public static int isNumeric(String str){ char[] ...原创 2019-04-12 15:24:32 · 304 阅读 · 0 评论 -
将一个数组从左开始第几位之前的进行旋转:左旋数组 如:将"abcdef"第2位之前(a为0号位置)进行旋转----》"cdefab"
将一个数组从左开始第几位之前的进行旋转:左旋数组 如:将"abcdef"第2位之前(a为0号位置)进行旋转----》"cdefab" 函数原型:public static void leftRotateString(String str,int n){ } */代码如下:public class Test3 { ...原创 2019-04-12 15:27:15 · 564 阅读 · 2 评论 -
字符串逆序输出但保持单词的正确性。例如:i am boy 逆置为:boy am i
题目:=====i am boy逆置为:boyam i函数原型:public static String reverseSentence(String str) {}代码如下:public class Test4 { public static String reverseSentence(String str) { char[] ar...原创 2019-04-12 15:31:02 · 819 阅读 · 0 评论 -
java学习关于String方法的总结
一:String 类对象的实例化 一般有以下两种方法,第一种,直接赋值,第二种则是通过new 一个对象,通过构造方法来实例化一个对象。示例代码:String str = "123456"; //对象实例化方式一:直接赋值String str1 = new String("987654"); //对象实例化方式二:构造方法这里需要注意的是,方法一所实例化的对...原创 2019-04-14 20:39:02 · 537 阅读 · 0 评论 -
合并两个有序数组
给定两个有序整数数组nums1和nums2,将nums2合并到nums1中,使得num1成为一个有序数组。说明:初始化nums1和nums2的元素数量分别为m和n。 你可以假设nums1有足够的空间(空间大小大于或等于m + n)来保存nums2中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 ...原创 2019-04-17 23:12:42 · 410 阅读 · 0 评论 -
有效括号的匹配问题
题目:给定一个只包括 '(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例2:输入: "()[]{}"输出: true示例3:输入: "(]"输出: f...原创 2019-04-27 09:39:38 · 362 阅读 · 0 评论 -
给定两个没有重复元素的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。找到 nums1 中每个元素在 nums2 中的下一个比其大的值。 nums1 中数字 x 的下一个
题目:给定两个没有重复元素的数组nums1和nums2,其中nums1是nums2的子集。找到nums1中每个元素在nums2中的下一个比其大的值。nums1中数字x的下一个更大元素是指x在nums2中对应位置的右边的第一个比x大的元素。如果不存在,对应位置输出-1。示例 1:输入: nums1 = [4,1,2], nums2 = [1,...原创 2019-05-02 17:18:49 · 1309 阅读 · 0 评论 -
编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前 给定一个链表的头指针 ListNode* pHead,请返回重新排列后的链表的头指针。注意:分割以后保持原来的
题目:编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前给定一个链表的头指针 ListNode* pHead,请返回重新排列后的链表的头指针。注意:分割以后保持原来的数据顺序不变。代码:import java.util.*;/*public class ListNode { int val; ListNode ne...原创 2019-04-23 18:23:21 · 692 阅读 · 0 评论 -
给定一个包含 0, 1, 2, ..., n 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数。 示例 1: 输入: [3,0,1] 输出: 2 示例 2: 输入: [9,6,
题目:给定一个包含 0, 1, 2, ..., n 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数。示例 1:输入: [3,0,1]输出: 2示例 2:输入: [9,6,4,2,3,5,7,0,1]输出: 8思路一:定义一个比目标数组大一个单位的数组如str,每当获取目标数组的元素时,将其值作为新建数组str的下标,并将str[nums[ i ] ...原创 2019-05-08 23:06:04 · 3353 阅读 · 0 评论 -
给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。 示例 1: 输入: [1,2,3,4,5,6,7] 和 k = 3 输出: [5,6,7,1,2,3,4] 解释: 向右旋转
题目:给定一个数组,将数组中的元素向右移动k个位置,其中k是非负数。示例 1:输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]示例2:输入: [-1,-1...原创 2019-05-10 18:30:01 · 2552 阅读 · 0 评论 -
最高分是多少-老师想知道从某某同学当中,分数最高的是多少,现在请你编程模拟老师的询问。当然,老师有时候需要更新某位同学的成绩.
题目描述老师想知道从某某同学当中,分数最高的是多少,现在请你编程模拟老师的询问。当然,老师有时候需要更新某位同学的成绩.输入描述:输入包括多组测试数据。每组输入第一行是两个正整数N和M(0 < N <= 30000,0 < M < 5000),分别代表学生的数目和操作的数目。学生ID编号从1编到N。第二行包含N个整数,代表这N个学生的初始成绩,其中第i个...原创 2019-07-28 09:10:08 · 712 阅读 · 0 评论