
力扣刷题
力扣算法题个人总结。力扣的算法题都有答案,该专栏的目的是记录每一题的坑
诗水人间
要想走的更远,就需要思考更深层次的问题。冷静、智慧、深沉是我所向往的
展开
-
力扣第3题-- 无重复字符的最长子串
对于这题我的解法:最长长度不会超过出现不重复的字符数n,因此以这个数为开始,找子串长度为n。如果n没有找到,则n-=1,重新找。 需要判断子串是不重复的字符。 class Solution { public int lengthOfLongestSubstring(String s) { int size = getSize(s); System.out.println(); for (int i = 0; i < size; i++) { .原创 2020-10-27 04:31:40 · 61703 阅读 · 1 评论 -
力扣第2题-- 两数相加
起初对于这题我有点轻视,简单的想先把这个链表所表达的值先算出来,例如2->4->3就是342 没有想过这个链表所表达的值可能超过基本类型int、long。然后将转换后的两个数字相加,得到这个值807,然后想利用StringBuilder的reverse方法得到708,但是结果报了数值越界异常。 因此这一题的坑:没有提示链表所表示的值可能超过基本类型 转换思路的解法 既然链表是倒叙的,那么也就是说第一个节点是这个数字的最小值也可以称为个位数 第二个节点则都是十位数… 那么按照顺序将每一个节点相.原创 2020-10-27 03:16:24 · 66554 阅读 · 0 评论 -
力扣第9题-- 回文数
这一题可以借助 第7题–数字反转 然后通过反转数字和原先数字比较,如果相等则说明是回文 解法一:利用前面的数字反转 class Solution { public boolean isPalindrome(int x) { if(x<0){ return false; } int t=x; int ans = 0; while (x != 0) {//说明没有移除完 .原创 2020-10-26 23:44:00 · 72567 阅读 · 0 评论 -
力扣第7题-- 整数反转
题目本身不难但是有一个坑(反转的数可能会超过int的最大值)那么这个答案应该返回0; 例如传入1534236469,末尾数是9,在进行ans = ans * 10 + x % 10;很容易造成越界 class Solution { public int reverse(int x) { int ans = 0; while (x != 0) {//说明没有移除完 if ((ans * 10) / 10 != ans) { // 处理过程中如果.原创 2020-10-26 23:30:15 · 62194 阅读 · 0 评论 -
力扣第1题--(两数之和)的优解
力扣第一题(两数之和) class Solution { public int[] twoSum(int[] nums, int target) { HashMap<Integer, Integer> hashMap = new HashMap<>(); for (int i = 0; i < nums.length; i++) { int tmp = target - nums[i];//原创 2020-10-21 04:25:27 · 61925 阅读 · 0 评论