算法
Ai之家-开箱测评
这个作者很懒,什么都没留下…
展开
-
字节二面,居然给我出的是这道算法题(8)【推荐收藏】
题目是: 定义一个二叉树结构,并实现一个接受根结点作为参数,将二叉树中每个节点的左右子节点交换位置的二叉树翻转方法。 我给出了以下答案: /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val原创 2021-07-25 20:40:42 · 264 阅读 · 2 评论 -
字节二面,居然给我出的是这道算法题(7)【推荐收藏】
题目是:了解算法的空间复杂度和时间复杂度么? 时间复杂度:时间复杂度是用来描述算法运行时间和算法处理问题规 模之间关系的一种衡量标准。 1.1、忽略公式中的常数项 1.2、忽略公式中的低次幂项,仅保留公式中的最高次幂 项 1.3、忽略公式中的最高次幂项的常数系数 1.4、如果一个公式中所有项均为常数项,那么这个算法的时间复杂 度为o(1) 常见时间复杂度大小关系:o(n*n) > o(nlogn) > o(1) 空间复杂度:空间复杂度是用来衡量一个算法在运行 过程中,在除了保存原始数据空间外还需原创 2021-07-25 20:39:45 · 242 阅读 · 1 评论 -
字节二面,出的是这道算法题(6)【推荐收藏】
题目是:请简述反转链表的两种方式及优缺点。 这个题目我给出了两个解决方案。一种是循环、一种是递归。 递归的优点会不停地压栈弹栈,比较耗时间。 代码如下: 循环方式 public static Node iterate(Node head){ Node prev = null , next ; Node curr = head ; while(curr != null){ next = curr.next ;//原创 2021-07-25 20:38:11 · 180 阅读 · 1 评论 -
字节二面,出的是这道算法题(5)【推荐收藏】
题目: 如何判断一个整数是“2”的整数次幂? 我想了想,给出了以下答案: public static boolean isPowerOf2(int num){ return (num & num - 1) == 0; } /* 时间复杂度:O(1) */原创 2021-07-25 20:35:58 · 219 阅读 · 0 评论 -
字节二面,出的是这道算法题(4)【推荐收藏】
题目:给你一个非负整数 num,请你返回将它变成 0 所需要的步数。 如果当前数字是偶数,你需要把它除以 2;否则,减去 1。 示例 1: 输入:num = 14 输出:6 解释: 步骤 1) 14 是偶数,除以 2 得到 7。 步骤 2)7 是奇数,减 1 得到 6。 步骤 3)6 是偶数,除以 2 得到 3。 步骤 4)3 是奇数,减 1 得到 2。 步骤 5)2 是偶数,除以 2 得到 1。 步骤 6)1 是奇数,减 1 得到 0。 示例 2: 输入:num = 8 输出:4 解释: 步骤 1)8 是原创 2021-07-25 20:35:10 · 174 阅读 · 0 评论 -
字节二面,出的是这道算法题(3)【推荐收藏】
题目是: 三数之和:给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c,使得 a + b + c = 0?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。 示例:给定数组 nums = [-1, 0, 1, 2, -1, -4], 满足要求的三元组集合为: [ [-1, 0, 1], [-1, -1, 2] ] 求解过程如下:首先我们先把数组排个序(原因一会儿说),排完序长这样: 因为我们要同时找三个数,所以采取固定一个数,同时用双指针来查找原创 2021-07-25 20:34:06 · 314 阅读 · 1 评论 -
字节二面,给我出的是这道算法题(2)【推荐收藏】
题目:给你一个非负整数 num ,请你返回将它变成 0 所需要的步数。 如果当前数字是偶数,你需要把它除以 2 ;否则,减去 1 。 示例 1: 输入:num = 14 输出:6 解释: 步骤 1) 14 是偶数,除以 2 得到 7 。 步骤 2) 7 是奇数,减 1 得到 6 。 步骤 3) 6 是偶数,除以 2 得到 3 。 步骤 4) 3 是奇数,减 1 得到 2 。 步骤 5) 2 是偶数,除以 2 得到 1 。 步骤 6) 1 是奇数,减 1 得到 0 。 示例 2: 输入:num = 8 输出:原创 2021-07-25 20:29:24 · 208 阅读 · 1 评论 -
字节二面,面试官给我出的是这道算法题
题目:给定一个仅包含大小写字母和空格 ’ ’ 的字符串s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。 示例: 输入: “Hello World” 输出: 5 说明: 一个单词是指仅由字母组成、不包含任何空格字符的 最大子字符串。 我苦思冥想,给出了以下答案: //JAVA class Solution { public int lengthOfLastWord(String s) { if(s == null |原创 2021-07-23 15:30:26 · 331 阅读 · 2 评论