package newleetcode;/** * leetcode20.strStr匹配字符串 * 给定一个主串和一个匹配字符串 * 在主串中寻找匹配字符串并返回下标 */public class LeetCode28 { //KMP算法 //dp前一个括号代表匹配状态 private int[] ...
分类:
编程语言 时间:
2020-08-01 09:21:06
阅读次数:
94
题目链接 https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/ 题解一 双指针:一个“快”,一个“慢” 快指针先到达链表末尾 具体思路见代码及注释 // Problem: LeetCode 19 // URL: http ...
分类:
其他好文 时间:
2020-07-30 21:51:26
阅读次数:
72
本题 题目链接 题目描述 我的题解 双指针 思路分析 因为该数组是递增数组,所以我们可以用双指针法。 声明指针left 和 right分别指向数组的头(数组下标为0)和尾(数组下标为length-1) 循环搜索:当两指针相遇时,结束循环 计算nums[left]和nums[right]的和 s 若s ...
分类:
其他好文 时间:
2020-07-28 14:05:28
阅读次数:
70
[编程题] lc 169. 多数元素 题目 输入输出 Java代码(方法1:借用哈希表计数) //方法1:借助哈希 public int majorityElement(int[] nums) { HashMap<Integer,Integer> map = new HashMap<>(); for ...
分类:
其他好文 时间:
2020-07-27 09:38:33
阅读次数:
51
目录: 1. 双指针:167. 两数之和 II - 输入有序数组 双指针:167. 两数之和 II - 输入有序数组 -- 2020-7-26 给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。 函数应该返回这两个下标值 index1 和 index2,其中 index1 必 ...
分类:
编程语言 时间:
2020-07-26 19:29:51
阅读次数:
73
package shuzu; import java.util.HashMap; /* 1013. 将数组分成和相等的三个部分 给你一个整数数组 A,只有可以将其划分为三个和相等的非空部分时才返回 true,否则返回 false。 形式上,如果可以找出索引 i+1 < j 且满足 A[0] + A[ ...
分类:
编程语言 时间:
2020-07-23 16:28:28
阅读次数:
66
题目要求 算法分析 可以用双指针法, 分别指向头尾元素,如果两元素的和大于目标,尾指针前移,如果小于目标,头指针后移,等于目标即可得答案 代码展示(C#) public class Solution { public int[] TwoSum(int[] numbers, int target) { ...
分类:
编程语言 时间:
2020-07-20 10:40:01
阅读次数:
55
题目链接 167. 两数之和 II - 输入有序数组 题目分析 非常简单的一个题目,因为给定的是一个有序数组,我们可以直接使用双指针思想去寻找两个目标元素。如果num[left] + num[right]==target 就保存循环结果然后退出循环,否则就看大小移动left或者right指针。 其实 ...
分类:
编程语言 时间:
2020-07-20 10:20:44
阅读次数:
62
反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 解题思路:双指针迭代。(如图) 实现代码: //双指针迭代法 public ListNode reverseList(ListNode head) { ListNode prev ...
分类:
其他好文 时间:
2020-07-19 00:40:33
阅读次数:
70
原题链接 题解 利用双指针算法,直接让后面一个指向前面一个 代码如下 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x ...
分类:
其他好文 时间:
2020-07-18 22:12:35
阅读次数:
56