有财君
有财君
全部文章
题解
归档
标签
去牛客网
登录
/
注册
有财君的博客
全部文章
/ 题解
(共23篇)
题解 | #不用加减乘除做加法#
思路 没有了四则运算符,还有位运算,也是可以搞一搞的。 以5+5为例,换算成二进制就是101+101。我们在平时进行十进制运算的时候,总是进行两个步骤,第一步不运算进位的情况,第二步运算进位。 那么看看第一步不运算进位,得到的结果就是000; 第二步考虑进位得到的结果就是1010。 回过头去看第一步...
2021-08-22
0
380
题解 | #数值的整数次方#
思路 最简单的办法就是暴力求解,不停的进行乘法运算。但是这样做很容易就超时了,其时间复杂度是O(n)。 求解这种问题最好的办法就是快速幂。 下面是代码实现。 Java版本 public class Solution { public double Power(double base, int...
2021-08-21
0
368
题解 | #从尾到头打印链表#
思路 看到这道题的第一思路就是用栈。 于是我写了下面的Java代码: /** * public class ListNode { * int val; * ListNode next = null; * * ListNode(int val) { * ...
2021-08-20
0
324
题解 | #合并表记录#
思路 作为一个Java程序员,我拿到这道题以后的第一感觉就是用Map来保存,然后去计算排序输出。 Java有些内置的集合就可以完成这一点,比如TreeMap,这是一个有序的Map。因此可以用Java代码简单的写出这道题的解法。 Java版本 import java.util.Map; import ...
2021-08-19
0
385
题解 | #替换空格#
思路 看到题的第一反应就是顺序遍历这个字符串,遇到空格就替换。 不过《剑指offer》这本书里详细的阐述了这种算法的时间复杂度是O(n^2),因为对一个长度为n的字符串来说,每一次替换其实就是要把空格之后的部分挪动两次。 这种代码很好写。 Java版本 import java.util.ArrayL...
2021-08-19
0
308
题解 | #求int型正整数在内存中存储时1的个数#
思路 这道题第一次见到的时候发现解法可以很暴力。 Java版本代码 import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Main { public static L...
2021-08-18
0
383
题解 | #求int型正整数在内存中存储时1的个数#
思路 这道题本来想着要把输入的二进制求解出来,后来发现是没有必要的。我只需要在计算的过程中判断取模的结果是否为1,用一个计数器就可以了。 C语言版本 #include <stdio.h> int main() { int n; scanf("%d"...
2021-08-17
0
371
题解 | #计算某字母出现次数#
思路 这道题拿到之后第一时间就会想到遍历整个字符串。 于是有了这样的解法: Java版本解法 import java.util.Scanner; public class Main { public int convert(String str, String flag) { ...
2021-08-16
0
309
题解 | #字符串最后一个单词的长度#
思路 我本来想到的解法是倒置数组,然后遍历,每遍历一个字符,计数器加1,直到遇到空格,循环退出。 实际上我的Java代码就是这么写的: import java.util.Scanner; public class Main { public int convert(String str)...
2021-08-16
0
340
题解 | #反转链表#
思路 这道题最开始我是用Java实现的,可以利用Java的Stack容器实现。 最近正在学习C语言,由于不是很熟悉,所以决定不要引入另外一个数据结构。查阅了网上的资料以后发现反转链表有很多办法,其中一个比较易于理解的叫做“头插法”。 简单的说就是准备一个新的链表,每次把原链表的头摘下来,插入到新链表...
2021-08-14
0
348
首页
上一页
1
2
3
下一页
末页