摘要:
题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. ",则输出"student. a am I" 解法一:双指针 思路:从后往前找单词的边界,用i指向单词的前一个位置,j指向单词的末尾 代码: 阅读全文
摘要:
题目:输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。 解法一:借助栈 思路:栈的特点是先进后出,java有stack类 代码: /** Definition for singly-linked list. public class ListNode { int val; Lis 阅读全文
摘要:
题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法 解法一:动态规划(自顶向下) 代码: class Solution { int[] t; //存储到n级阶梯的走法 public int numWays(int n) { t = new int[ 阅读全文
摘要:
题目:统计一个数字在排序数组中出现的次数 解法一:二分法+遍历 思路:先用二分法确定target所在的区间[l,r],再逐个判断元素是否==target,遍历时会浪费一些不必要的时间 代码: class Solution { public int search(int[] nums, int tar 阅读全文
摘要:
题目:在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 思路: 一个萝卜一个坑 代码: class Solution { public int findRepea 阅读全文