算法
文章平均质量分 63
qq_38959715
这个作者很懒,什么都没留下…
展开
-
Java、Python/1089. Duplicate Zeros 复写0
题目代码部分(Python 72ms 91.35%)class Solution: def duplicateZeros(self, arr: List[int]) -> None: """ Do not return anything, modify arr in-place instead. ...转载 2019-07-18 14:10:19 · 1834 阅读 · 0 评论 -
Java/485. Max Consecutive Ones 最大连续1的个数
题目代码部分一(4ms 96.65%)class Solution { public int findMaxConsecutiveOnes(int[] nums) { int res = 0; int now = 0; for(int i = 0; i < nums.length; i++){ ...转载 2019-05-10 20:31:14 · 1368 阅读 · 0 评论 -
Java/191. Number of 1 Bits 位1的个数
题目代码部分(4ms 45.91%)public class Solution { public int hammingWeight(int n) { int res = 0; while(n != 0){ n = n & (n - 1); res++; ...转载 2019-04-30 19:28:26 · 1409 阅读 · 0 评论 -
Java/1025. Divisor Game 除数博弈(为什么要这样解)
先上题目讲一下思路吧:哪个数选不出小于自己的可以整除的正除数了?是不是只有“1”,所以其实就是谁拿到“1”谁输的游戏,所以判断能不能拿到“1”很重要。先手情况下,拿去比N小,且被N整除的正整数。当N为奇数时,我 只能拿掉奇数(奇数不能整除偶数,双方都不会出错情况下),所以比自己小的奇数时多少?最佳情况下对手不可能给你拿到偶数,所以你永远只能拿奇数,知到对方...原创 2019-04-29 19:38:26 · 1636 阅读 · 0 评论 -
Java/1002. Find Common Characters 查找常用字符
题目代码部分(4ms 99.26%)class Solution { public List<String> commonChars(String[] A) { List<String> res = new ArrayList(); if(A == null || A.length == 0) re...转载 2019-04-29 14:01:12 · 1419 阅读 · 0 评论 -
Java/977. Squares of a Sorted Array 有序数组的平方
题目代码部分(7ms 92.26%)class Solution { public int[] sortedSquares(int[] A) { int len = A.length; int[] res = new int[len]; for(int i = 0; i < l...转载 2019-04-29 13:22:57 · 1325 阅读 · 0 评论 -
Java/509. Fibonacci Number 斐波那契数
题目代码部分(0ms 100%)class Solution { public int fib(int N) { if(N == 0) return 0; if(N == 1) return 1; int f1 = 0; int f2 = 1; ...转载 2019-04-29 13:13:03 · 1331 阅读 · 0 评论 -
Java/653. Two Sum IV - Input is a BST 两数之和 IV - 输入 BST
题目 代码部分一(592ms)/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * }...转载 2018-09-11 10:16:10 · 492 阅读 · 0 评论 -
Java/501. Find Mode in Binary Search Tree 二叉搜索树中的众数
题目 代码部分一(11ms)class Solution { Map<Integer, Integer> map = new HashMap(); int counter = 0; //计数器,记录众数出现的次数 public int[] findMode(TreeN...转载 2018-09-13 12:22:04 · 693 阅读 · 0 评论 -
Java/538. Convert BST to Greater Tree 把二叉搜索树转换成累加树
题目 代码部分(17ms)class Solution { int sum = 0; public TreeNode convertBST(TreeNode root) { if(root == null) return null; convertBST(root.right); s...转载 2018-09-10 18:56:12 · 593 阅读 · 0 评论 -
基础算法分析及优化方法(冒泡、选择、插入,盘点面试的时候可能遇到的问题)
一、冒泡算法冒泡算法的一个重点特征是:体现冒泡的过程,大的沉底,小的上浮曾经忽略这个过程,面试被考到了。假定数组下标为[0,1,...,n] 首先从第一个数据开始,与第二个数据相比,若大于第二个数据,则将两个数据的位置进行交换 将指针由第一个数据指向第二个数据,比较第二个数据与第三个数据,如果第二数据比第三个数据大,则交换第二个数据与第三个数据的位置。 以...原创 2018-09-12 15:32:23 · 1164 阅读 · 0 评论 -
Java/897. Increasing Order Search Tree 递增顺序查找树
题目 代码部分(70ms)class Solution { List<Integer> list = new ArrayList(); public TreeNode increasingBST(TreeNode root) { if(root == null) return root; ...转载 2018-09-06 10:00:22 · 1048 阅读 · 0 评论 -
Java/896. Monotonic Array 单调数列
题目 代码部分(27ms)class Solution { boolean res = true; public boolean isMonotonic(int[] A) { if(A == null || A.length == 0) return res; boolean index = true;...转载 2018-09-06 08:55:17 · 519 阅读 · 0 评论 -
Java/1009. Complement of Base 10 Integer 十进制整数的反码
题目代码部分一(1ms 97.10%)class Solution { public int bitwiseComplement(int N) { int res = 0; int mask = 1; int tmp = N; for(int i = 0; i < 32; i++...转载 2019-05-10 20:34:28 · 1339 阅读 · 0 评论 -
Java/268. Missing Number 缺失数字
题目代码部分一(2ms 80.37%)class Solution { public int missingNumber(int[] nums) { int res = nums.length * (nums.length+1) / 2; for(int n : nums){ res -= n; ...转载 2019-05-10 20:38:25 · 1415 阅读 · 0 评论 -
Java、Python/938. Range Sum of BST 二叉搜索树的范围和
题目代码部分(Python 68ms 52.52%)class Solution: def heightChecker(self, heights: List[int]) -> int: tmp = sorted(heights) return sum(tmp[i] != heights[i] for i in ra...转载 2019-07-18 14:06:28 · 1662 阅读 · 0 评论 -
Java、Python/821. Shortest Distance to a Character 字符串的最短距离
题目代码部分(Python 92ms 73.32%)class Solution: def shortestToChar(self, S: str, C: str) -> List[int]: res = [] for i in range(len(S)): if S[i] is C: ...转载 2019-07-18 14:01:44 · 1592 阅读 · 0 评论 -
Java/287. Find the Duplicate Number 寻找重复数
题目代码部分(1ms 98.87%)class Solution { public int findDuplicate(int[] nums) { if(nums.length == 1) return 0; int slow = nums[0]; int fast = num...转载 2019-07-18 11:36:00 · 1638 阅读 · 0 评论 -
Java/581. Shortest Unsorted Continuous Subarray 最短无序连续子数组
题目代码部分(20ms 37.53%)class Solution { public int findUnsortedSubarray(int[] nums) { int len = nums.length; if(len == 1) return 0; int res = 0; ...转载 2019-07-18 11:26:59 · 1579 阅读 · 0 评论 -
Java/234. Palindrome Linked List 回文链表
题目代码部分(3ms 58.27%)/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Sol...转载 2019-07-18 11:24:41 · 1571 阅读 · 0 评论 -
Java/198. House Robber 打家劫舍
题目代码部分(Java 1ms 98.91%)class Solution { public int rob(int[] nums) { int n = nums.length; if(n == 0) return 0; if(n == 1) return nums[0]; ...转载 2019-06-28 13:23:43 · 1561 阅读 · 0 评论 -
Java/448. Find All Numbers Disappeared in an Array 找到所有数组中消失的数字
题目代码部分(Java 11ms 89.30%)class Solution { public List<Integer> findDisappearedNumbers(int[] nums) { List<Integer> res = new ArrayList(); ...转载 2019-06-28 13:09:38 · 1616 阅读 · 0 评论 -
Java/342. Power of Four 4的幂
题目代码部分(5ms 88.37%)class Solution { public boolean isPowerOfFour(int num) { if(num <= 0) return false; int count = 1; for(int i = 0; i &l...转载 2019-05-10 21:03:41 · 1574 阅读 · 0 评论 -
Java/326. Power of Three 3的幂
题目代码部分一(89ms 48.26%)class Solution { public boolean isPowerOfThree(int n) { return n == 1 || n == 3 || n == 9 || n == 27 || n == 81 || n == 243 || n == 729 |...转载 2019-05-10 20:55:47 · 1628 阅读 · 0 评论 -
Java/696. Count Binary Substrings 计数二进制子串
题目代码部分(13ms 99.26%)class Solution { public int countBinarySubstrings(String s) { char[] ch = s.toCharArray(); int res, last, cur; last = res = 0; ...转载 2019-05-10 20:50:45 · 1567 阅读 · 0 评论 -
Java/506. Relative Ranks 相对名次
题目代码部分(22ms 55.88%)class Solution { public String[] findRelativeRanks(int[] nums) { if(nums.length == 0) return new String[0]; if(nums.length == 1) { Str...转载 2019-05-10 20:48:16 · 1531 阅读 · 0 评论 -
Java/520. Detect Capital 检测大写字母
题目代码部分(4ms 96.41%)class Solution { public boolean detectCapitalUse(String word) { char[] ch = word.toCharArray(); boolean flag1 = true; //全大写 boolean fl...转载 2019-05-10 20:45:44 · 1411 阅读 · 0 评论 -
Java/383. Ransom Note 赎金信
题目代码部分一(100ms 100%)class Solution { public boolean canConstruct(String ransomNote, String magazine) { char[] ch1 = ransomNote.toCharArray(); char[] ch2 = magazine...转载 2019-05-10 20:42:12 · 1412 阅读 · 0 评论 -
Java/606. Construct String from Binary Tree 根据二叉树创建字符串
题目 代码部分一(34ms)class Solution { public String tree2str(TreeNode t) { if(t == null) return ""; if(t.left == null && t.right == null) ...转载 2018-09-09 10:38:44 · 658 阅读 · 0 评论 -
101.Symmetric Tree 对称二叉树
题目代码部分一:class Solution { boolean res = true; public boolean isSymmetric(TreeNode root) { if(root == null){ return true; }else if(root.left == null &&am...转载 2018-09-05 16:19:19 · 361 阅读 · 0 评论 -
112.Path Sum 路径总和
Path Sum I 路径总和 I代码部分一(0ms):class Solution { boolean res = false; public boolean hasPathSum(TreeNode root, int sum) { if(root == null) return false; int coun...转载 2018-09-04 21:48:15 · 482 阅读 · 0 评论 -
C语言、Java/867.(回文素数) Prime Palindrome
先上问题求出大于或等于 N 的最小回文素数。回顾一下,如果一个数大于 1,且其因数只有 1 和它自身,那么这个数是素数。例如,2,3,5,7,11 以及 13 是素数。回顾一下,如果一个数从左往右读与从右往左读是一样的,那么这个数是回文数。例如,12321 是回文数。代码部分一(实现但耗费时间过长,时间超出)class Solution { public int primePalindro...原创 2018-07-08 22:55:34 · 972 阅读 · 0 评论 -
C语言/344.(反转字符串) Reverse String
先上题目思路:分别从头尾出发逐个读取字符,并将二者交换。当right>left时,反转完成。代码部分char* reverseString(char* s) { int i,len=strlen(s)-1; char temp; for(i=0;i<=len;i++,len--){ temp=s[i]; s[i]=s[len];...原创 2018-07-02 10:54:02 · 713 阅读 · 0 评论 -
C语言/476.(数字的补数) Number Complement
先上题目思路:补数如题所述,该数二进制取反。我尝试了一下直接整数异或发现不行。这里使用常规做法,取得一个整数,先将整数转换为二进制数(此处使用循环%2取余),得到二进制数的每一位的同时进行计算转换为整数。注意:得到的第一个数是最低位的二进制数,逐个往高位走,所以我们可以增加一个计数变量,判断每次循环得到的数需乘以2的几次方。代码部分:int findComplement(int num) { ...原创 2018-07-02 10:38:16 · 971 阅读 · 0 评论 -
C语言/832.(翻转图像)Flipping an Image
先上题目思路,暴力做法,循环头尾逐个移动到中间,同时进行交换。#include <stdio.h>#include <string.h>int main(){ int i,j,AIlen,AJlen,temp,Jtemp; int A[5][5]={{1,0,0,1,0},{1,0,1,1,0},{1,1,1,1,0},{1,0,1,1,1},{0,0...原创 2018-07-01 15:31:04 · 1209 阅读 · 0 评论 -
C语言/657.(判断路线成圈)Judge Route Circle
先上题目:思路:坐标问题,二维坐标,可以从互逆方向上是否能达到平衡判断。所以可以将其处理成两个方向变量问题,判断变量最终是否发生变化。代码部分:bool judgeCircle(char* moves) { int UD,LR,i; UD=LR=i=0; while(moves[i]!='\0'){ switch(moves[i]){ ...转载 2018-07-01 15:21:09 · 379 阅读 · 0 评论 -
C语言/461.(汉明距离)Hamming Distance
先上题目 思路:两个整数的二进制表示形式之间,不同的位数的“数量”。两种方式,一、先转换为二进制,逐位比较。二、先将两个整数进行^(异或,相同为零,不同为1),同时进行计数可以求出相同或不同的数量。 代码部分:int hammingDistance(int x, int y) { int n,temp,count=0; //count为计数...转载 2018-07-01 15:07:59 · 1855 阅读 · 0 评论 -
C语言/771.宝石与石头
在做这道题的时候,发现了一个细节。这个细节可以提高我们的算法效率(本题中12ms—>4ms),多积累能帮助我们写出更高效的代码吧原创 2018-06-26 13:37:13 · 1183 阅读 · 0 评论 -
1.C语言/两数之和
先上题目这里以在函数里做为前提:思路:题意是数组里找一个数与另一个数,最容易的做法即是两层遍历所有数,找出其中匹配的两个。int* twoSum(int* nums, int numsSize, int target) { int i,j; for(i=0;i<numsSize-1;i++){ for(j=i+1;j<numsSize;j++){ ...原创 2018-06-19 12:10:45 · 887 阅读 · 0 评论 -
C语言/7.反转整数
先上问题:思路:这道题非常类似于回文数的数字解法,逐个取数即可。重点在于限制输出数值范围,第一种直接限制数值范围int reverse(int x) { int temp,result=0;; if(x>1534236461||x>=2147483642||x<(-2147483641)) return 0; while(x){ temp=...原创 2018-06-25 09:26:58 · 1804 阅读 · 2 评论