摘要:字节一面算法题 给你一个字符串 s ,逐个翻转字符串中的所有 单词 。 单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。 请你返回一个翻转 s 中单词顺序并用单个空格相连的字符串。 示例 1: 输入:s = "the sky is blue" 输出:"blue i
阅读全文
摘要:给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。 https://leetcode-cn.com/problems/combinations/ 回溯算法的经典应用。 package codepackage; import com.sun.org.apache.bcel.
阅读全文
摘要:给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/letter-combinat
阅读全文
摘要:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 https://leetcode-cn.com/problems/maximum-subarray/ 核心:dp[i]的意义 :表示的是以当前位置为结尾的最大的和,必须将当前位置的数计入计算。 方
阅读全文
摘要:字节二面算法题。 给你一个只包含 '(' 和 ')' 的字符串,找出最长有效(格式正确且连续)括号子串的长度。 https://leetcode-cn.com/problems/longest-valid-parentheses/comments/ 以下实现的是,找出有效的括号对数(输出有效括号的数
阅读全文
摘要:递归经典题目-爬楼梯 https://leetcode-cn.com/problems/climbing-stairs/ 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 递归的三个条件: 1.一个
阅读全文
摘要:给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-search
阅读全文
摘要://给你一个整数数组 nums ,请你将数组按照每个值的频率 升序 排序。如果有多个值的频率相同,请你按照数值本身将它们 降序 排序。////请你返回排序后的数组。这是个字节的算法面试题 import java.util.*; //给你一个整数数组 nums ,请你将数组按照每个值的频率 升序 排序
阅读全文
摘要://两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目。////给你两个整数 x 和 y,计算并返回它们之间的汉明距离。 //方法: 直接两个数异或,统计异或结果中1的个数 public class Num461_hammingDistance { public static i
阅读全文
摘要://给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。 //方法一:对于所有的数字,只有两类: // //奇数:二进制表示中,奇数一定比前面那个偶数多一个 1,因为多的就是最低位的 1。 //偶数:二进制表示中,偶数中
阅读全文
摘要:判断链表是否为回文链表 public class Num234_palindromeLinkedList { //方法一:判断是否为环形链表 public boolean isPalindrome(ListNode head) { ArrayList<Integer> a = new ArrayLi
阅读全文
摘要:两个栈实现一个队列 package codepackage; import java.util.Deque; import java.util.LinkedList; import java.util.Stack; public class Num232_stackAsQueue { Deque<I
阅读全文
摘要://给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。https://leetcode-cn.com/problems/reverse-linked-list/ public class Num206_reverseLinkedList { // 自己用的双指针法,还有一种递归法,递
阅读全文
摘要:给两个版本号,返回版本号的对比结果 public class Num165_compareversion { public static int compareVersion(String version1, String version2) { String[] s1 = version1.spl
阅读全文
摘要:/** * 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。 * */ import java.util.HashSet; import java.util.List; public class Num160_mi
阅读全文
摘要:用两个栈实现最小栈功能 package codepackage; import java.util.Deque; import java.util.LinkedList; public class Num155_minStack { LinkedList<Integer> minlist; Link
阅读全文
摘要:/** * 环形链表 * 给定一个链表,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos
阅读全文
摘要:迭代算法实现二叉树的遍历 //实现二叉树的前序、中序、后序遍历 import java.util.ArrayList; import java.util.List; import java.util.Stack; class TreeNode { int val; TreeNode left; Tr
阅读全文
摘要:给一个数组,求三个数之和等于0的组合,需要去重. 字节一面面试题。 public class Num015_3sum { //自己写的三指针,没有实现去重功能,没有对初始情况:没有三个数,或者最小值都>0做判断 public List<List<Integer>> threeSum0(int[] n
阅读全文
摘要:///给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。////来源:力扣(LeetCode)//
阅读全文