剑指offer-其他
lupa1521
这个作者很懒,什么都没留下…
展开
-
7、斐波那契数列
思路: fibn=fibone+fibtwo; fibone=fibtwo; fibtwo=fibn; public class Solution { public int Fibonacci(int n) { int fibone=0; int fibtwo=1; int fibn=0;...原创 2019-05-12 10:39:09 · 156 阅读 · 0 评论 -
44、翻转单词顺序
思路1:二次翻转 思路2:栈 思路3:以空格切割单词存 public class Solution { public String ReverseSentence(String str) { String a=""; if(a.equals(str.trim())) return str; String[] s...原创 2019-05-12 11:29:53 · 524 阅读 · 0 评论 -
64、滑动窗口最大值
思路: 数组长度a.length,滑动窗口size,最大值数组长度a.length-size+1 数组从头开始遍历,当前窗口最后一个值current=size+i 令min=j,从j到current遍历,找到最小值 import java.util.*; public class Solution { public ArrayList<Integer> maxInWi...原创 2019-05-12 11:48:01 · 170 阅读 · 0 评论 -
34、第一次只出现一次的字符 hashmap
思路:hashmap character存字符, integer存次数 hash.get(str.charAt(i))==1 import java.util.*; public class Solution { public int FirstNotRepeatingChar(String str) { if(str==null||str.length()==0...原创 2019-05-12 12:04:29 · 95 阅读 · 0 评论 -
28、字符串的排列(全排列)
思路: 把第一个字符和后面所有字符交换 固定第一个字符,求后面所有字符排列 import java.util.*; public class Solution { public ArrayList<String> Permutation(String str) { ArrayList<String> result=new ArrayList&l...原创 2019-05-13 10:57:49 · 179 阅读 · 0 评论 -
31、连续子数组最大和(动态规划)
max=Math.max(max+array[i], array[i]); res=Math.max(max, res); public class Solution { public int FindGreatestSumOfSubArray(int[] array) { int res = array[0]; /...原创 2019-05-13 10:58:23 · 550 阅读 · 0 评论 -
40、数组中只出现一次的数字(异或)
思路: 依次对数组中每一个数字做异或运算,得到结果后,看倒数第几位为1 根据倒数第几位为1,将数组分为两组,分别对两个数组异或 public class Solution { public void FindNumsAppearOnce(int [] array,int num1[] , int num2[]) { if(array==null) ...原创 2019-05-13 10:58:17 · 215 阅读 · 0 评论