LintCode算法训练
微微笑再加油
很多时候,我们更需要做的就是闭上自己愿意争辩的嘴,放下所谓高贵的自尊,承认自己曾经所犯的错误,下定决心努力去修正它。这并不代表放弃,而是收获了一份成长。
展开
-
LintCode算法之合并排序数组 II
合并两个有序升序的整数数组A和B变成一个新的数组。新数组也要有序。样例输入: A=[1,2,3,4], B=[2,4,5,6]输出: [1,2,2,3,4,4,5,6] public int[] mergeSortedArray(int[] A, int[] B) { int arr[]=new int[A.length+B.length]; int p1=0; int p2=0; int i=0; //依次取A数组和B原创 2020-12-10 14:12:40 · 112 阅读 · 0 评论 -
LintCode算法之二叉树的最大节点
在二叉树中寻找值最大的节点并返回。样例1:输入:{1,-5,3,1,2,-4,-5}输出: 3说明:这棵树如下所示:1/ -5 3/ \ / 1 2 -4 -5 public TreeNode maxNode(TreeNode root) { ArrayList<TreeNode> result=new ArrayList<>(); result.add(root); search(root原创 2020-12-09 17:16:59 · 110 阅读 · 0 评论 -
LintCode算法之链表节点计数
计算链表中有多少个节点样例 1:输入: 1->3->5->null输出: 3样例解释:返回链表中结点个数,也就是链表的长度. public int countNodes(ListNode head) { int count=0; while(head!=null){ //获取下一个链表的结点 head=head.next; count++; } ret原创 2020-12-09 16:54:56 · 161 阅读 · 0 评论 -
LintCode算法之三数之中的最大值
给三个整数,求他们中的最大值。样例 1:输入: num1 = 1, num2 = 9, num3 = 0输出: 9 样例解释:返回三个数中最大的数。public int maxOfThreeNumbers(int num1, int num2, int num3) { int a; int b; int c; if(num1>=num2){ a=num1; }else{ a=num2; } if(num2>=nu原创 2020-12-09 16:17:28 · 195 阅读 · 0 评论 -
LintCode算法之矩阵面积
矩阵面积描述实现一个矩阵类Rectangle,包含如下的一些成员变量与函数:两个共有的成员变量 width 和 height 分别代表宽度和高度。一个构造函数,接受2个参数 width 和 height 来设定矩阵的宽度和高度。一个成员函数 getArea,返回这个矩阵的面积。代码如下public class Rectangle { int width ; int height ; public Rectangle(int width,int height){ this原创 2020-12-09 10:10:59 · 216 阅读 · 0 评论 -
LintCode算法之大小写转换
将一个字符由小写字母转换为大写字母样例 1:输入: ‘a’输出: ‘A’ public char lowercaseToUppercase(char character) { int num=character; //在ACCII码表中 大小写相差32 int a=num-32; char b=(char)a; return b; }...原创 2020-12-09 09:44:32 · 123 阅读 · 0 评论 -
LintCode算法之统计数字
计算数字 k 在 0 到 n 中的出现的次数,k 可能是 0~9 的一个值。例如输入:k = 1, n = 12输出:5解释:在 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] 中,我们发现 1 出现了 5 次 (1, 10, 11, 12)(注意11中有两个1)。public int digitCounts(int k, int n) { int count=0; char[] myCharArray; fo原创 2020-11-30 13:20:20 · 115 阅读 · 0 评论 -
LintCode算法之尾部的0
设计一个算法,计算出n阶乘中尾部零的个数输入: 11输出: 2 样例解释:11! = 39916800, 结尾的0有2个解题思路:看到这道题,想到只要有5就能使得结尾多一个0,由于是连续的,偶数完全够满足与和5及其倍数相乘的,所以只需要看n之前有多少个5就可以了。5x5=10 有一个025x4=100有两个0125x8=1000有三个0…n/5可以得到1到n内有多少个数是5的倍数。这种数和多个2相乘末尾会得到1个0;n/5/5可以得到1到n内有多少个数是25的倍数。这种数和多个2原创 2020-11-26 13:57:15 · 154 阅读 · 0 评论 -
LintCode算法之n!
在java代码之中,计算n的阶乘的算法第一种就是利用for循环public int calculation1(int num ){ int m = 1; for(int i = 1;i <= num;i++) { m *= i; } return m; }第二种利用递归的写法public int calculation(int num) throws IIOException{ int sum=1; if(num<0){ throw new IIO原创 2020-11-25 16:00:32 · 108 阅读 · 0 评论 -
LintCode算法训练之A+B的问题
开始在LintCode上面做算法练习,第一道题就是A+B的问题,上去第一次反应这也太简单了,直接a+b就完事了呗,但是你是否可以挑战一下不这样做?(不使用++等算数运算符)https://www.lintcode.com/problem/a-b-problem/descriptionLintCode之A+B网站链接下面记录一下自己写的代码 public int aplusb(int a, int b) { int sum=(a^b)+((a&b)<<1);原创 2020-11-25 13:39:31 · 160 阅读 · 0 评论