反转字符串 我的解法比较low,利用集合的工具类Collections.reverse反转,用时过长 class Solution { public void reverseString(char[] s) { List<Character> list=new ArrayList<>(); for (int i = 0; i < s.length; i++) { list.add(s[i]); } Collections.reverse(list); int i=0; for…
位1的个数 解法一: class Solution { // you need to treat n as an unsigned value public int hammingWeight(int n) { return Integer.bitCount(n); } } 解法二: 记住一点,前面的零没用的不要!! class Solution { // you need to treat n as an unsigned value public int hammingWeight(int…
Fizz Buzz class Solution { public List<String> fizzBuzz(int n) { List<String> list=new LinkedList<>(); for (int i = 1; i <=n; i++) { if (i%3==0&&i%5==0) { list.add("FizzBuzz"); continue; }else if (i%3==0) { list.add(…
打乱数组 不断的让第一个与后面随机选择的数交换 class Solution { private int[] nums; private int[] initnums; public Solution(int[] nums) { this.nums=nums; this.initnums=Arrays.copyOf(nums, nums.length);//这里必须要复制,要指明对象 } /** Resets the array to its original configuration and…
爬楼梯:斐波那契数列 假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数. 非递归解法 class Solution { public int climbStairs(int n) { if (n==1) { return 1; } if (n==2) { return 2; } int n1=1,n2=2; for (int i = 0; i <n-2; i++) { int m=n1+n2; n…
合并两个有序数组 class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { System.arraycopy(nums2, 0, nums1, m, n); Arrays.sort(nums1); } } 第一个错误的版本 递归解法:自己突然来了灵感写的,哈哈哈,递归真的很神奇! /* The isBadVersion API is defined in the parent class Versio…