![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
带刀少年ha
这个作者很懒,什么都没留下…
展开
-
Java 算法题笔记(一)
由于整数最大为2147483647,即超过这个数就会溢出假设int x 恰巧为最大值,那么y = x/10 ;y=214748364; 所以y * 10 +pop > =Integer.MAX_VALUE ,所以pop>=7; 所以若 a =INTMAX/10 ,那么pop > 7 会溢出还有如果a > y ,那么例如214748365 * 10 =21...原创 2019-03-02 21:34:38 · 369 阅读 · 0 评论 -
Java 算法题笔记(七)位运算
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。示例 1:输入: [2,2,1]输出: 1对异或的考察异或:相同为0,不同为1 。异或同一个数两次,原数不变。 a^b^b = a; 交换律:a ^ b ^ c <=> a ^ c ^ b 任何数于0异或为任何数 0 ^ n => n...原创 2019-04-17 08:29:40 · 339 阅读 · 0 评论 -
验证回文串
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a canal: Panama"输出: true示例 2:输入: "race a car"输出: false用前后指针的方法可以提高效率,就是一个i从前走,遇到非法字符就跳过,一个j从...原创 2019-04-14 22:06:31 · 138 阅读 · 0 评论 -
求众数,阶乘后的零
给定一个大小为n的数组,找到其中的众数。众数是指在数组中出现次数大于⌊ n/2 ⌋的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。示例1:输入: [3,2,3]输出: 3示例2:输入: [2,2,1,1,1,2,2]输出: 2从第一个数开始计数,遇到相同的就加1 ,不同的就减1 ,减到0 就重新计数,总能找到最多的那个。。public ...原创 2019-04-27 10:27:21 · 140 阅读 · 0 评论 -
Java 算法题笔记(八)
移除链表元素删除链表中等于给定值val的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5法一:增加一个节点代替当前的头指针,这样如果头指针为应该跨过的指针,也可以用加的那个指针跨过。public ListNode removeElements...原创 2019-04-27 19:51:37 · 133 阅读 · 0 评论 -
Java 算法题笔记(九)
买卖股票的最佳时机给定一个数组,它的第i个元素是一支给定股票第i天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = ...原创 2019-05-07 20:11:40 · 363 阅读 · 0 评论 -
Java 算法题笔记(十)全排列相关
Leecode17. 电话号码的字母组合参考题解:https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/solution/dian-hua-hao-ma-de-zi-mu-zu-he-by-leetcode/class Solution {// 感觉做这个题substring 方法要...原创 2019-09-18 10:18:18 · 138 阅读 · 0 评论 -
Java 算法笔记(四)
给定一个仅包含大小写字母和空格' '的字符串,返回其最后一个单词的长度。如果不存在最后一个单词,请返回 0。说明:一个单词是指由字母组成,但不包含任何空格的字符串。示例:输入: "Hello World"输出: 5/** * 简单分析:由于给定一个仅包含大小写字母和空格' '的字符串,所以不用考虑其它字符 * 由于是最后一个单词,所以可以从后...原创 2019-04-09 22:19:45 · 234 阅读 · 0 评论 -
Java 算法题笔记(六)
二叉树的层序遍历给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例如:给定二叉树[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其自底向上的层次遍历为:[ [15,7], [9,20], [3]]用递归从上到下...原创 2019-04-13 11:07:39 · 126 阅读 · 0 评论 -
Java 算法题笔记(三)
思路就是后一个的next指针指向前一个,然后前一个的next指向NULL,,全部完成,实现反转。// 方法一(非递归):使用栈来完成 public static ListNode reverseList(ListNode head) { // 如果一开始是空,返回null ;只有一个节点返回那个节点 if (head == null || head.n...原创 2019-03-14 10:26:22 · 242 阅读 · 0 评论 -
java 循环打印
打印九九乘法表 for (int i=1;i<=9;i++){ // 控制行 for (int j=1;j<=i;j++){ // 具体操作在这,每一行的具体操作 System.out.print(i+"*"+j+"="+i*j+" "); } System.o...原创 2019-03-10 10:30:58 · 2779 阅读 · 0 评论 -
基础算法题
输出101-200之间的素数素数又叫质数(prime number),有无限个。质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。方法一直接%2到它自己之前的所有数),如果遇到能整除,即没有余数的,就判断该数不是素数,并跳出循环,检查下一个数。方法二去%2到它sqrt()的所有数,如果有因数就不是素数,没有因数就是素数,这个方法效率高,少检查大部分数。/...原创 2019-03-14 20:16:21 · 324 阅读 · 0 评论 -
Java 约瑟夫环
先参考一下百度百科约瑟夫环概念1.一群人围在一起坐成环状(如:N) 2.从某个编号开始报数(如:K) 3.数到某个数(如:M)的时候,此人出列,下一个人重新报数 4.一直循环,直到所有人出列,约瑟夫环结束。/** * @param totalNum 总共数的个数 * @param cycleNum 报数的大小 * @param startNO 开始报数的编号...原创 2019-03-15 10:56:18 · 364 阅读 · 0 评论 -
Java 算法题笔记(二,二维数组)
力扣刷到的一题,做一下笔记。思路先找出格子里所有腐烂的橘子,然后这些橘子每传染一次,记深度+1 ,直到不能再传染了为止,再去判断这些橘子里,是否还有好橘子,如果有则为不能完全传染,返回-1 ,如果没有则为能全部传完,那就返回深度值。 // 原来,dr,dc 是控制上下左右移动的,这里写的是上,左,下,右 public static int orangesRotting(in...原创 2019-03-12 14:05:00 · 480 阅读 · 0 评论 -
Java 算法题,报数
报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:1. 12. 113. 214. 12115. 1112211被读作"one 1"("一个一") , 即11。11被读作"two 1s"("两个一"), 即21。21被读作"one 2", "one 1"("一个二","一...原创 2019-03-26 09:39:34 · 492 阅读 · 0 评论 -
最大回文前缀
一个字符串的最大回文前缀长度求一个字符串的最大回文前缀长度。回文是指正反方向读起来都一样的字符串,比如“abcdcba”就是一个回文。Scanner in = new Scanner(System.in); while (in.hasNext()){ String input = in.next(); int len = i...原创 2019-04-26 22:35:42 · 371 阅读 · 0 评论 -
Java 算法题笔记(五)
爬楼梯假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定n是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶...原创 2019-04-11 08:08:31 · 168 阅读 · 0 评论 -
Java 算法题笔记(十一)
和为s 的两个数输入一个递增排序的数组和一个数字s,在数组中查找两个数,得它们的和正好是s。如果有多对数字的和等于s,输出任意一对即可。举例说明例如输入数组{1 、2 、4、7 、11 、15 }和数字15. 由于4+ 11 = 15 ,因此输出4 和11 。暴力破解当然可以,但是考虑到数组有序为递增的,所以要用一下这个条件,更好。public static List<...原创 2019-10-06 10:34:42 · 145 阅读 · 0 评论