
刷题
chzl0801
这个作者很懒,什么都没留下…
展开
-
存在重复的元素
给定一个整数数组,判断是否存在重复元素。如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。class Solution { public boolean containsDuplicate(int[] nums) { Set<Integer> set = new HashSet<Integer>(); for (int x : nums) { if (!set.a原创 2021-11-20 11:35:19 · 308 阅读 · 0 评论 -
赎金信和杂志
给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串 ransom 能不能由第二个字符串 magazines 里面的字符构成。如果可以构成,返回 true ;否则返回 false。(题目说明:为了不暴露赎金信字迹,要从杂志上搜索各个需要的字母,组成单词来表达意思。杂志字符串中的每个字符只能在赎金信字符串中使用一次。)输入:ransomNote = "a", magazine = "b"输出:false输入:ransomNote = "aa", magazi原创 2021-11-03 00:02:58 · 145 阅读 · 0 评论 -
有小的字母异位词
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。输入: s = "anagram", t = "nagaram"输出: true输入: s = "rat", t = "car"输出: false1 <= s.length, t.length <= 5 * 104s 和 t 仅包含小写字母方法一:class Solution { public bool原创 2021-11-02 23:56:50 · 83 阅读 · 0 评论 -
杨辉三角的问题
问题:方法一:class Solution { public List<List<Integer>> generate(int numRows) { List<List<Integer>> results = new ArrayList<>(); for(int i = 1; i <= numRows; i++){ List<Integer> tmp = new A原创 2021-11-01 23:03:27 · 135 阅读 · 0 评论 -
重塑矩阵(一个矩阵转化成另一个矩阵)
问题:在 MATLAB 中,有一个非常有用的函数 reshape ,它可以将一个 m x n 矩阵重塑为另一个大小不同(r x c)的新矩阵,但保留其原始数据。给你一个由二维数组 mat 表示的 m x n 矩阵,以及两个正整数 r 和 c ,分别表示想要的重构的矩阵的行数和列数。重构后的矩阵需要将原始矩阵的所有元素以相同的 行遍历顺序 填充。如果具有给定参数的 reshape 操作是可行且合理的,则输出新的重塑矩阵;否则,输出原始矩阵。来源:力扣(LeetCode)链接:https://lee原创 2021-11-01 22:42:19 · 2168 阅读 · 0 评论 -
只出现一次的数字 III
给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。方法一:class Solution { public int[] singleNumber(int[] nums) { int[] results = new int[2]; Set<Integer> set = new HashSet<>(nums.length); for(i原创 2021-10-31 00:11:35 · 82 阅读 · 0 评论 -
股票买卖的题
题:给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。输入:[7,1,5,3,6,4]输出:5解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 注意利润不能是 7-原创 2021-10-30 19:44:10 · 451 阅读 · 0 评论 -
两个数组的交集 II
给定两个数组,编写一个函数来计算它们的交集。方法一:class Solution { public int[] intersect(int[] nums1, int[] nums2) { // 定义一个集合用来存储结果 List<Integer> resultList = new ArrayList<>(); // 定义一个map集合用来存储数组一中的元素 Map<Integer,Li原创 2021-10-30 19:02:48 · 108 阅读 · 0 评论 -
合并两个有序数组
给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。方法一:先合并,再排序class Solution原创 2021-10-30 02:10:48 · 114 阅读 · 0 评论 -
两数之和等于目标值,返回两数的下标
描述:给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。方法一:是否存在一个数和当前的数相加等于目标数class Solution { public int[] twoSum(int[] nums, int target) { int[] results = {0,1};原创 2021-10-30 01:39:37 · 315 阅读 · 0 评论