
双指针
ThunderWay
北京工业大学计算机研究生就读
展开
-
和为S的两个数字
题目描述输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。//思路:双指针,首位开始。import java.util.ArrayList;public class Solution { public ArrayList<Integer> FindNumbersWithSum(int [] array,int sum) { //1 2 3 4 5 6 ArrayLi...原创 2020-07-18 20:59:21 · 138 阅读 · 0 评论 -
反转字符串中的元音字母
编写一个函数,以字符串作为输入,反转该字符串中的元音字母。示例 1:输入: "hello"输出: "holle"示例 2:输入: "leetcode"输出: "leotcede"//思路:双指针,写一个字符类型的交换函数,写一个判断是否元音字母的函数,双指针判断和交换。classSolution{publicStringreverseVowels(Strings){intp1=0;char[]array=s...原创 2020-06-30 20:40:21 · 236 阅读 · 0 评论 -
两个数组的交集 II
给定两个数组,编写一个函数来计算它们的交集。示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2,2]示例 2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [4,9]说明:输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。我们可以不考虑输出结果的顺序。//思路:先对两个数组排序,然后双指针。classSolution{publicint[]interse...原创 2020-06-30 11:17:54 · 170 阅读 · 0 评论 -
移除元素
给你一个数组 nums和一个值 val,你需要 原地 移除所有数值等于val的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。示例2:给定 nums = [0,1,2,...原创 2020-06-30 10:30:46 · 104 阅读 · 0 评论 -
反转字符串
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:["h","e","l","l","o"]输出:["o","l","l","e","h"]示例 2:输入:["H","a","n","n","a","h"]输出:["h","a","n","n","a","H".原创 2020-06-27 18:32:18 · 92 阅读 · 0 评论