编程题
主要记录做过的经典的编程题目
椰汁菠萝
在循环中进步
展开
-
LeeCode-整数对应二进制中1的个数
1除了个位是1,其他位都是0,进行&操作时,就可用来判断n的个位是不是1。判断完个位,无符号右移即可继续判断。输入一个整数,返回其二进制中1的个数。原创 2023-11-02 10:36:03 · 81 阅读 · 0 评论 -
【力扣】172. 阶乘后的零
解题思路因为13!的值就会超过整形范围造成溢出,所以不能对阶乘求解;因只有2 * 5可得到0,其他数相乘不能得到0,题目转换为求n!中含有多少个2*5;因为2的数量明显高于5,题目转为求n!中含有多少5;5!= 1 * 2 * 3 * 4 * (1 * 5); 10!=1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * (2 * 5); 可发现:n和5出现的次数是有关系的,n/5就是n!中5出现的次数;但经试验n>=25时并不适用;25!=1 * …* (1 * 5)…原创 2022-03-25 17:50:08 · 447 阅读 · 0 评论 -
213. 字符串压缩--LintCode领扣编程题
字符串压缩描述设计一种方法,通过给重复字符计数来进行基本的字符串压缩例如,字符串 aabcccccaaa 可压缩为 a2b1c5a3 。而如果压缩后的字符数不小于原始的字符数,则返回原始的字符串。可以假设字符串仅包括 a-z 的字母。样例样例 1:输入:str = "aabcccccaaa"输出:"a2b1c5a3"样例 2:输入:str = "aabbcc"输出:"aabbcc"代码public class Solution { /** * @param o原创 2020-10-10 10:30:01 · 353 阅读 · 0 评论 -
Fizz Buzz 问题--LintCode领扣编程题
描述给你一个整数n. 从 1 到 n 按照下面的规则打印每个数:如果这个数被3整除,打印fizz.如果这个数被5整除,打印buzz.如果这个数能同时被3和5整除,打印fizz buzz.如果这个数既不能被 3 整除也不能被 5 整除,打印数字本身挑战你是否可以只用一个 if 来实现解答答案1 public List<String> fizzBuzz(int n) { List<String> r = new ArrayList<&原创 2020-07-23 21:57:15 · 218 阅读 · 0 评论 -
不使用加法运算符实现加法--LintCode领扣编程题
public static int add(int a, int b) { int sum = a^b; int carry = (a & b) << 1; if(carry == 0) { return sum; } return add(sum,carry); }原理:主要使用按位运算符中的异或运算符^和与运算符&^:相同为0,相异为1;&:同是1 才为1,其他都为0;二进制的加法运算,和异或操作非常相似,以4位为例...原创 2020-06-30 15:24:07 · 271 阅读 · 0 评论