面试必刷算法
文章平均质量分 81
每日刷题,一道题目多种解法,深度解剖问题,不断加强逻辑思维,巩固完善算法知识。如果选择开始就要坚持下去,俗话说:“表示惊讶,只需一分钟,要做出惊人的事业,却要许多年”。想要拿到心仪的offer,就需要不断的刷题。共勉~
小奕vi
低级的欲望靠放纵就能满足,高级的欲望靠自制才能抵达。
展开
-
【攻克剑指offer】第6天《求1+2+…+n》
求1+2+…+n🏠解法一、迭代🏠解法二、高斯计算🏘️解法三、递归🏘️解法四、逻辑运算符的短路效应题目描述: 💦👉题目链接👈 题目中给了很多限制,首先我们先来回顾基本的解法,再看限制。🏠解法一、迭代代码展示: 👇class Solution { public int sumNums(int n) { int res = 0; for(int i = 1; i <= n; i++) res += i;原创 2022-04-17 21:01:49 · 363 阅读 · 20 评论 -
【攻克剑指offer】第5天《在排序数组中查找数字》
在排序数组中查找数字🏠解法一、暴力求解🏠解法二、二分法题目描述: 💦👉题目链接👈🏠解法一、暴力求解思路分析: 💫相比说到暴力求解多少都有点思路了,直接遍历数组,一个一个找相同的数,然后统计总数。代码展示: 👇class Solution { public int search(int[] nums, int target) { int count = 0; //for(数据类型 变量名 :集合对象名) for(int x : nums){原创 2022-04-10 00:09:22 · 963 阅读 · 8 评论 -
【攻克剑指offer】第4天《二进制中1的个数》
二进制中1的个数解法一、位数检查解法二、右移统计解法三、巧用题目描述: 💦👉题目链接👈解法一、位数检查首先我们先了解一下与运算若 n & 1 = 0,则 n 二进制 最右一位 为0 ;若 n & 1 = 1,则 n 二进制 最右一位 为1 。思路分析: 💫一个朴素的做法,对 int 的每一位进行检查,并统计 1 的个数。代码展示: 👇public class Solution { public int hammingWeight(int n) {原创 2022-04-08 23:39:11 · 932 阅读 · 9 评论 -
【攻克剑指offer】第3天《斐波那契数列》
斐波那契数列解法一、暴力递归解法二、 递归实现动态规划解法三、迭代实现动态规划解法一、暴力递归题目描述: 💦👉题目链接👈看题目我们首先来了解2个问题:①1e9+7为什么等于1000000007? 什么是1e9通常来说这是计算机中一种科学计数法的表示形式:1e9 = 1*10^9 = 1000000000;例如:9e8 = 9*10^8 = 900000000;e表示10,e后面的数字表示次方,e的多少次方。原创 2022-04-07 20:57:27 · 1851 阅读 · 16 评论 -
【攻克剑指offer】第2天《替换空格》
替换空格解法一、利用字符串中现有的方法解法二、使用StringBuilder解法三、数组题目描述: 💦在这里插入图片描述👉题目链接👈解法一、利用字符串中现有的方法简单做一下java的String函数笔记:public String replaceAll(String regex,String replacement)用给定的替换替换与给定的regular expression匹配的此字符串的每个子字符串。参数regex - 要匹配此字符串的正则表达式replacement原创 2022-04-06 23:41:52 · 638 阅读 · 35 评论 -
【攻克剑指offer】第1天《数组中重复的数字》
数组中重复的数字方法一:暴力求解方法二:哈希查找题目描述:题目链接方法一:暴力求解暴力求解的思路非常的直接:遍历数组中的每个元素,然后在剩下的元素中寻找是否存在相同的元素。代码如下class Solution { public int findRepeatNumber(int[] nums) { for (int i = 0; i < nums.length; i++) { for (int j = i + 1; j < nums原创 2022-04-05 09:09:28 · 844 阅读 · 24 评论