
LeetCode
我是太阳男神
这个作者很懒,什么都没留下…
展开
-
LeetCode-007整数反转
public int reverse(int x) { String s = String.valueOf(x); //整数转字符串 int len = s.length(); int zs = len; if(s.charAt(0)=='-'){ //判断正负 zs = len-1; } String temp = ""; for(int i=0;i<zs;i++){ //倒叙 temp = temp + s.原创 2020-07-20 18:15:37 · 125 阅读 · 0 评论 -
LeetCode-006Z字型变换
昨天没有更 出去嗨了 今天补上有一起交流的可以私信我 进群public String convert(String s, int numRows) { if(numRows == 1){//一行就不变呗 不加过不了 报超出时间限制 return s; } int len = s.length(); String res = ""; for (int i = 0; i < numRows; i++) { //按示例几行解释几行原创 2020-07-20 17:05:02 · 127 阅读 · 0 评论 -
LeetCode-005最长回文子串
public String longestPalindrome(String s) { int len = s.length(); while (len > 0) { //暴力解法 类似滑动块 加入长度为5 第一次循环12345 //第二次循环1234 2345 //第三次循环123 234 345 直至找到回文return F: for (int k = 0; k < s.length() .原创 2020-07-18 15:15:27 · 135 阅读 · 0 评论 -
LeetCode-004寻找两个正序数组的中位数
//要求时间复杂度O(log(m+n)) 没达到但通过 现在是O(m+n)public double findMedianSortedArrays(int[] nums1, int[] nums2) { int len = nums1.length + nums2.length; int temp1=0;//记录遍历nums1[]的位置 int temp2=0;//记录遍历nums2[]的位置 HashMap hashMap = new HashMap();//好像也没必.原创 2020-07-17 15:58:56 · 124 阅读 · 0 评论 -
LeetCode-003无重复字符的最长子串
public class LengthOfLongestSubstring003 { public int lengthOfLongestSubstring(String s) { int len = s.length();//字符串长度给下面循环用 String res = ""; //两层循环一个个推进 for(int i=0;i<len;i++){ String temp=""; .原创 2020-07-16 11:27:43 · 161 阅读 · 0 评论 -
LeetCode-002两数相加
public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode res = new ListNode(0); ListNode head = res;//留住第一个结点 int jw=0;//进位 while(l1!=null||l2!=null||jw!=0){ int var1 = l1==null?0:l1.val; int var2 = l2==null?0:l2..原创 2020-07-15 17:28:21 · 175 阅读 · 0 评论 -
LeetCode-028实现strStr()
public int strStr(String haystack, String needle) { if(needle==null||needle.isEmpty()){//题意为空返回0 return 0; } if(!haystack.contains(needle)){//不包含返回-1 return -1; } int lenH = haystack.length(); int lenN = needle.len.原创 2020-10-13 16:06:08 · 101 阅读 · 0 评论 -
LeetCode-027移除元素
public int removeElement(int[] nums, int val) { int len = nums.length; int res = 0;//记录出现次数 for(int i = 0;i<len;i++){ if(nums[i]==val){ res++; }else{//修改 nums[i-res] = nums[i]; } } .原创 2020-10-13 15:41:46 · 106 阅读 · 0 评论 -
LeetCode-026删除排序数组中的重复项
public int removeDuplicates(int[] nums) { int len = nums.length; int temp = 0;//记录所有元素重复次数 for(int i = 1;i<len;i++) { if (nums[i - 1] == nums[i]) {//排序数组只需要对比相邻元素 temp++; } else { nums[i - temp] = nu.原创 2020-10-13 14:55:48 · 120 阅读 · 0 评论 -
LeetCode-022括号生成
List<String> res = new ArrayList<>();public List<String> generateParenthesis(int n) { dfs(n,n,""); return res;}private void dfs(int left, int right, String curStr) { if (left == 0 && right == 0) { // 左右括号都不剩余了,递归.原创 2020-09-13 22:38:13 · 129 阅读 · 0 评论 -
LeetCode-021合并两个有序链表
public ListNode mergeTwoLists(ListNode l1, ListNode l2) { if(l1==null){//l1空直接返回l2 return l2; } if(l2==null){//l2空直接返回l1 return l1; } ListNode res = new ListNode(); ListNode head = res;//保留第一个结点 while(l1!=null.原创 2020-08-22 23:33:04 · 135 阅读 · 0 评论 -
LeetCode-020有效的括号
public boolean isValid(String s) { char[] c = s.toCharArray();//先转数组 String res = ""; for (char value : c) {//遍历 if (value == '(' || value == '[' || value == '{') {//左括号加进来 res = res + value; } else { if.原创 2020-08-09 12:58:50 · 99 阅读 · 0 评论 -
LeetCode-019删除链表的倒数第N个结点
public ListNode removeNthFromEnd(ListNode head, int n) { ListNode res = new ListNode(-1); res.next = head;//指向头结点 return ListNode first = res;//采用双指针,移动相同的距离 ListNode second = res;//当first为最后一个节点是 second则是结点n的前一个结点 for(int i=0;i<n;i.原创 2020-08-08 20:27:36 · 136 阅读 · 0 评论 -
LeetCode-018四数之和
public List<List<Integer>> fourSum(int[] nums, int target) { List<List<Integer>> res = new ArrayList<>(); if(nums.length < 4){ return res; } Arrays.sort(nums);//排序的作用在暴力解法下似乎效果不大 但是可以去重 int len.原创 2020-08-07 19:34:35 · 169 阅读 · 0 评论 -
LeetCode-017电话号码的字母组合
public List<String> letterCombinations(String digits) { LinkedList<String> res = new LinkedList<>();//返回结果 注意队列!!! int len = digits.length(); if(len==0){//直接退出 return res; } String[] map = new String[] {"0", .原创 2020-08-06 19:58:27 · 132 阅读 · 0 评论 -
LeetCode-016最接近的三数之和
public int threeSumClosest(int[] nums, int target) { int min = Integer.MAX_VALUE;//因为找最小值先给个最大值跟 if(nums.length < 3){ return 0; } Arrays.sort(nums);//排序的作用在暴力解法下似乎效果不大 int len = nums.length; for(int i = 0;i < len - 2.原创 2020-08-06 12:40:18 · 155 阅读 · 0 评论 -
LeetCode-015三数之和
public List<List<Integer>> threeSum(int[] nums) { List<List<Integer>> res = new LinkedList<>(); if(nums.length < 3){ return res; } Arrays.sort(nums); int len = nums.length; for(int i = 0;i .原创 2020-08-05 16:34:03 · 146 阅读 · 0 评论 -
LeetCode-014最长公共前缀
public String longestCommonPrefix(String[] strs) { if(strs.length==0){//空直接返回空 return ""; } if(strs.length==1){//只有一个元素直接返回当前元素 return strs[0]; } String res = strs[0];//从最长开始递减 int len = res.length(); for(int .原创 2020-08-04 19:22:18 · 142 阅读 · 0 评论 -
LeetCode-013罗马数字转整数
public int romanToInt(String s) { //罗马数字和整型之间的规则 int[] nums = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1}; String[] romans = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"}; int res = 0;//结果 int ind.原创 2020-08-04 17:05:11 · 150 阅读 · 0 评论 -
LeetCode-012整数转罗马数字
坚持真的很难 因为有事断了一星期public String intToRoman(int num) { if(num>3999||num<1){//不在范围内直接return return null; } //规则存在HashMap方便取 HashMap<Integer,String> hashMap = new HashMap<Integer,String>(){ { pu原创 2020-08-03 15:37:58 · 185 阅读 · 0 评论 -
LeetCode-011盛最多水的容器
public int maxArea(int[] height) { //反正就是暴力 很好懂吧注释我都不知道怎么写了 int len = height.length; int maxArea = 0; for(int i =0; i<len-1;i++){ for(int j = i+1;j<len;j++){ int area = (j-i)*Math.min(height[i],height[j]); .原创 2020-07-24 18:18:44 · 170 阅读 · 0 评论 -
LeetCode-010正则表达式匹配
public boolean isMatch(String s, String p) { //如果模式串为空,则只能匹配空的匹配串。 if (p.isEmpty()){ return s.isEmpty(); } //记录匹配串的第一个字符是否被模式串匹配。 boolean firstMatch = (!s.isEmpty() && (p.charAt(0) == s.charAt(0) || p.charAt(0) == '.').原创 2020-07-23 22:26:30 · 209 阅读 · 0 评论 -
LeetCode-009回文数
public boolean isPalindrome(int x) { if(x<0){//按示例是个负数直接false return false; } int temp = x; int[] resA = new int[10];//存个十百千万 int res = 0; int i = 0;//标记x是几位数 while(temp>0){//个位变首位存在数组,以此类推 resA[i]=temp.原创 2020-07-22 15:48:15 · 115 阅读 · 0 评论 -
LeetCode-008字符串转换成整数
public int myAtoi(String str) { str = str.trim();//上来先去除前后空格 int len = str.length(); int i=0; int end=-1;//标记结束位置 -1字符串除首位可能是+-全是数字 0表示首位除+-的其他非数字 //1为首位是+-但第二位不是数字 if(str.equals("")||str.equals("+")||str.equals("-")){/.原创 2020-07-21 20:34:50 · 137 阅读 · 0 评论 -
LeetCode-001两数之和
public class TwoSum001 { public static int[] twoSum(int[] nums, int target) { int result[]={0,0}; //初始化 for(int i=0;i<nums.length;i++){ for(int j=0;j<nums.length;j++){ if(i!=j) { //数组中同一个元素不能使用两遍 .原创 2020-07-15 16:06:27 · 191 阅读 · 0 评论