随笔分类 - 算法虐我千百遍(水各种OJ)
主要是刷OJ上的水题,大多不值得深究。
摘要:直接暴力搜即可。 AC代码: 题目来源: https://www.nowcoder.com/practice/1f7675ae7a9e40e4bd04eb754b62fd00?tpId=49&tqId=29281&tPage=1&rp=1&ru=/ta/2016test&qru=/ta/2016te
阅读全文
摘要:先对两个数进行位异或,这样能够得到两个数中有多少位是不同的,然后再数一下这个数中有多少位1就可以了。 AC代码: 题目地址: https://www.nowcoder.com/practice/ba033b0d1c2f497da1dd04330cc003af?tpId=49&tqId=29232&t
阅读全文
摘要:今天去面试做了一道笔试编程题,白板写代码一直是硬伤,一是字太烂隔两分钟自己都看不懂了,二是脑容量太小支撑不了两位数以上加减法的运算,老感觉自己写错了... 题意大致如下:有50瓶饮料,每3个空瓶子可以换一瓶饮料,问最多可以喝多少瓶(请忽略是否是同一人喝完这五十瓶...) 解法:import java.util.Scanner; public class Main_020 { publ...
阅读全文
摘要:-------------------------------------------------- 最开始的想法是统计每个字符的出现次数和位置,如下: AC代码: public class Solution { public int firstUniqChar(String s) { Count c[]=new Count[26]; f...
阅读全文
摘要:---------------------------------- 乘权相加即可。 AC代码:(从右往左) public class Solution { public int titleToNumber(String s) { int res=0; for(int i=s.length()-1;i>=0;i--) res+=(s.charAt(...
阅读全文
摘要:------------------------------------------------ 因为不知道前序是谁,所以只好采用类似于数组实现的列表移动值, 又因为如果当前是最后一个元素了但是已经没办法修改前序了所以必须在倒数第二个就修改,所以应该提前进行判断 AC代码: /** * Definition for singly-linked list. * public class...
阅读全文
摘要:-------------------------------------------- 思路就是进行频率统计。 统计一下第二个字符串字符出现次数++统计一下第一个字符串中字符出现次数--如果出现负数说明第二个中的字符不够用的。 AC代码如下: public class Solution { public boolean canConstruct(String ransomN...
阅读全文
摘要:-------------------------------------------------- 先计算每个字母的出现次数然后减去,最后剩下的那一个就是后来添加的了。 AC代码: public class Solution { public char findTheDifference(String s, String t) { int book[]=new ...
阅读全文
摘要:-------------------------------- 递归遍历即可 AC代码: /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int...
阅读全文
摘要:-------------------------------------------- 虽然是从最简单的开始刷起,但木有想到LeetCode上也有这么水的题目啊。。。 AC代码: public class Solution { public List fizzBuzz(int n) { List res=new ArrayList(); for(...
阅读全文
摘要:------------------------------- Java也可以实现一行代码反转字符串哦 AC代码如下: public class Solution { public String reverseString(String s) { return new StringBuffer(s).reverse().toString(); } } ...
阅读全文
摘要:-------------------------------------祭出BigInteger AC代码: import java.math.BigInteger; import java.util.Scanner; public class Main { public static void main(String[] args) { Sc...
阅读全文
摘要:水。 AC代码: 题目来源: http://acm.nyist.net/JudgeOnline/problem.php?pid=198
阅读全文
摘要:无论哪一个坏掉了都能连通意味着不能存在只有一根线(度为1)的基站,所以统计一下度为1的点,然后为了节省将它们两两相连,如果是奇数的话剩下的那个没配对的就随便连连喽~ AC代码: 题目来源: http://acm.nyist.net/JudgeOnline/problem.php?pid=170
阅读全文
摘要:其实就是计算一下时间线上重叠部分的最大值是多少 一个很容易想到的办法就是模拟,如下 AC代码: 题目来源: http://acm.nyist.net/JudgeOnline/problem.php?pid=168
阅读全文
摘要:开始的时候打算每进入或退出一层就换算成那层的时间,然而WA了。 怒,干脆就来点暴力的,管你什么跟什么只要停留了就根据层次统一换算成现实时间,使用BigDecimal保证精度,AC。 AC代码: 题目来源: http://acm.nyist.net/JudgeOnline/problem.php?pi
阅读全文
摘要:排序取中间数即可 AC代码: 题目来源: http://acm.nyist.net/JudgeOnline/problem.php?pid=124
阅读全文
摘要:迭代相加即可 AC代码: 题目来源: http://acm.nyist.net/JudgeOnline/problem.php?pid=114
阅读全文
摘要:需要注意的就是考虑各种情况,各种!各种!!各种!!!各种情况,真是一个让人崩溃但是炒鸡修身养性的题啊....:) AC代码: 题目来源: http://acm.nyist.net/JudgeOnline/problem.php?pid=111
阅读全文
摘要:二连水。 AC代码: 题目来源: http://acm.nyist.net/JudgeOnline/problem.php?pid=113
阅读全文