小练习
文章平均质量分 82
小的算法练习、小的知识点,等等
sysucjf
这个作者很懒,什么都没留下…
展开
-
力扣35:搜索插入位置
原题链接我愚蠢地忘记了O(logn)O(\log n)O(logn)的表现是比O(n)O(n)O(n)更快的。用了暴力解,二分查找在大学学过了。class Solution { public int searchInsert(int[] nums, int target) { int n = nums.length; int left = 0, right = n - 1, ans = n; while (left <= right) {原创 2021-11-16 20:13:39 · 220 阅读 · 0 评论 -
力扣28:实现 strStr()
这题对于初学者有多恶心呢?给你们看看我的败绩…原创 2021-11-12 21:02:25 · 4492 阅读 · 0 评论 -
力扣27:移除元素
原题链接class Solution { public int removeElement(int[] nums, int val) { if(nums==null || nums.length==0) return 0; int len = 0; for(int i = 0;i<nums.length;i++){ if(nums[i]==val) len++;原创 2021-11-12 11:19:31 · 4328 阅读 · 0 评论 -
力扣26:删除有序数组中的重复项
原题链接class Solution { public int removeDuplicates(int[] nums) { int firstDuplicateMark = 0; //数组已经是升序了 for (int i = 1;i < nums.length; i++) {//总是数组中要比较的前一个数 if(nums[i-1]==nums[i]) continue;原创 2021-11-11 09:48:47 · 4554 阅读 · 0 评论 -
力扣21:合并两个有序链表
原题链接说实话我看到这题吓到了,然后多少心态有点崩,连代码都没写就直接投降了。我确实有一个思路——不过这个思路也是我大学时听了《数据结构与算法》课听到的,大致简述如下:两张表同时遍历,然后将比较两个表的头节点,小的节点并入已排序的表中,大的节点继续保留;然后下一次遍历继续比较两个表的头节点。其实这个思路有了,只要努用心钻研一下就可以写出来了,这也告诉我们放弃心态实际上是不可取的。而官方解答也确实是这样的思路,采用了归并和迭代两种处理方法。...原创 2021-11-09 17:19:01 · 259 阅读 · 0 评论 -
力扣20:有效的括号
原题链接class Solution { Map<Character,Character> parenthesesPair = new HashMap<Character,Character>(){{ put(')','('); put(']','['); put('}','{'); }}; public boolean isValid(String s) { if (parenthesesPair.原创 2021-11-04 20:15:44 · 117 阅读 · 0 评论 -
力扣14:最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入:strs = [“flower”,“flow”,“flight”]输出:“fl”示例 2:输入:strs = [“dog”,“racecar”,“car”]输出:""解释:输入不存在公共前缀。提示:1 <= strs.length <= 2000 <= strs[i].length <= 200strs[i] 仅由小写英文字母组成...原创 2021-11-02 22:57:41 · 337 阅读 · 0 评论 -
力扣13:罗马数字转整数
class Solution { public int romanToInt(String s) { int num = 0; Deque<Character> sChar = new ArrayDeque<>(); int addNum = 0; //使用Deque可以避免使用charAt超出范围的异常 for (int i=0;i<s.length();i++){原创 2021-11-01 20:38:04 · 120 阅读 · 0 评论 -
力扣9:回文数
原题链接给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。原创 2021-10-30 11:18:52 · 205 阅读 · 0 评论 -
力扣7:整数反转
这也太差劲了…这里说的正中下怀,因为我确实是用了字符串加try-catch的方法解决问题。收获需要对于32位二进制数的最大和最小值有一定把握。总的来说,偏数学一些。原创 2021-10-28 23:45:28 · 184 阅读 · 0 评论 -
力扣1:两数之和
原题链接给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例2:输入:nums = [3,2,4], target原创 2021-10-28 19:30:57 · 76 阅读 · 0 评论 -
下一个更大元素 I
今天第一次看leetcode的题目,炸了,第一题简单的就做不出来。我先把题目和解答摘抄下来,回家仔细分析。给你两个没有重复元素的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。请你找出 nums1 中每个元素在 nums2 中的下一个比其大的值。nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出 -1 。示例1:输入: nums1 = [4,1,2], nums2 = [1,3,4原创 2021-10-26 20:20:58 · 71 阅读 · 0 评论 -
在字符串中找出第一个只出现一次的字符
这道题好像出自《剑指offer》。我这本书还没有开始看,要找机会看看。在一个长为字符串中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).(从0开始计数)数据范围:字符串只有字母组成。要求:空间复杂度 O(N),时间复杂度 O(N)举例:输入 “google”,输出 4输入 “aa”,输出 -1这道题的一个前提基础知识就是要知道一些Collection和Map类常用方法的时间复杂度,参考Java集合类常用方法时间复杂度。还有根据这篇博客,String类原创 2021-10-26 01:08:58 · 2156 阅读 · 1 评论