简单
qq_38959715
这个作者很懒,什么都没留下…
展开
-
9.C语言/回文数
先上题目思路:这道题最简单的解方式就是,将原有数倒置后与原有数比较,相同即为回文数,反之不是。 在数据不大的时候,此种解法效率还算高。但当数据特别大的时候,效率就会变得很低。 另一种解题思路则是以中心轴将数划分为两部分,分别从头,尾(head++,tail--)一一对应进行比较,直至头大于尾(head>tail)结束。可以考虑从字符数组方面开始,处理重点在于将数字转化为...原创 2018-06-21 17:38:46 · 969 阅读 · 0 评论 -
13.C语言/罗马数字转整数
先上题目:思路:这道题比较容易,关键在于I,X,C的运算会受后一位(右边一位)数字的影响。int romanToInt(char* s) { int i,result=0; for(i=0;i<strlen(s);i++){ if(s[i]=='I') if(s[i+1]=='V'||s[i+1]=='X') ...原创 2018-06-22 00:05:27 · 1913 阅读 · 0 评论 -
C++/38.整数递增序列报数
先上题目思路:这道题重点在于正确读懂题目,最简单理解是,给一个数,输出一个字符串。给的数是整数序列,这点很关键,序列!!!即第几个数。分析示例的时候,其实就是说1->11,11->21,21->1211,1211->111221,这相当于一个演变过程,假设我要求第五个,就要从第一个开始演变到序列5。 不说废话了,下面代码思路就是:用一个while()控制演变次...原创 2018-06-22 17:26:52 · 665 阅读 · 0 评论 -
C语言/28.实现strStr()
先上题目:思路:暴力解法(for循环遍历),这道题没有做好,效率太低,勉强通过了。后续更换答案int strStr(char* haystack, char* needle) { int i,j,result=-1; if(needle[0]=='\0') return 0; if(strstr(haystack,needle)==NULL) return -1; ...原创 2018-06-24 11:03:36 · 677 阅读 · 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 评论 -
C语言/771.宝石与石头
在做这道题的时候,发现了一个细节。这个细节可以提高我们的算法效率(本题中12ms—>4ms),多积累能帮助我们写出更高效的代码吧原创 2018-06-26 13:37:13 · 1182 阅读 · 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语言/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 · 378 阅读 · 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 · 1205 阅读 · 0 评论 -
C语言/476.(数字的补数) Number Complement
先上题目思路:补数如题所述,该数二进制取反。我尝试了一下直接整数异或发现不行。这里使用常规做法,取得一个整数,先将整数转换为二进制数(此处使用循环%2取余),得到二进制数的每一位的同时进行计算转换为整数。注意:得到的第一个数是最低位的二进制数,逐个往高位走,所以我们可以增加一个计数变量,判断每次循环得到的数需乘以2的几次方。代码部分:int findComplement(int num) { ...原创 2018-07-02 10:38:16 · 969 阅读 · 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 评论 -
Java/566.(重塑矩阵) Reshape the Matrix
先上问题在MATLAB中,有一个非常有用的函数 reshape,它可以将一个矩阵重塑为另一个大小不同的新矩阵,但保留其原始数据。给出一个由二维数组表示的矩阵,以及两个正整数r和c,分别表示想要的重构的矩阵的行数和列数。重构后的矩阵需要将原始矩阵的所有元素以相同的行遍历顺序填充。如果具有给定参数的reshape操作是可行且合理的,则输出新的重塑矩阵;否则,输出原始矩阵。示例 1:输入: nums ...原创 2018-07-09 21:57:58 · 735 阅读 · 0 评论 -
Java/868.(装置矩阵) Transpose Matrix
先上题目给定一个矩阵 A, 返回 A 的转置矩阵。矩阵的转置是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。 示例 1:输入:[[1,2,3],[4,5,6],[7,8,9]]输出:[[1,4,7],[2,5,8],[3,6,9]]示例 2:输入:[[1,2,3],[4,5,6]]输出:[[1,4],[2,5],[3,6]] 提示:1 <= A.length <= 1000...原创 2018-07-09 22:09:34 · 623 阅读 · 0 评论 -
Java/832.(翻转图像) Flipping an Image
先上题目给定一个二进制矩阵 A,我们想先水平翻转图像,然后反转图像并返回结果。水平翻转图片就是将图片的每一行都进行翻转,即逆序。例如,水平翻转 [1, 1, 0] 的结果是 [0, 1, 1]。反转图片的意思是图片中的 0 全部被 1 替换, 1 全部被 0 替换。例如,反转 [0, 1, 1] 的结果是 [1, 0, 0]。示例 1:输入: [[1,1,0],[1,0,1],[0,0,0]]输...原创 2018-07-10 10:34:16 · 632 阅读 · 0 评论 -
C语言/860.(柠檬水找零)Lemonade Change
先上题目在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。注意,一开始你手头没有任何零钱。如果你能给每位顾客正确找零,返回 true ,否则返回 false 。示例:思路:题目很长,希望大家能...原创 2018-07-04 21:43:48 · 1370 阅读 · 0 评论 -
C语言/557.(反转字符串中的单词III) Reverse Words in a String III
先上题目思路:循环读取数组,判断是否读到空格符号(注意:当为最后一个单词时会读取到‘\0’),设置两个标签分别标记每个单词的头部和尾部。头尾标签同逐个向中间移动交换字符。代码部分char* reverseWords(char* s) { int i,left,right,len; char temp; left=0; len=strlen(s); for(i...原创 2018-07-04 23:36:03 · 744 阅读 · 0 评论 -
Java/695.(岛屿的最大面积) Max Area of Island
先上题目思路:在数组里面寻找相连的1的个数,很容易联想到递归方法(或图的广度遍历)。首先对数组进行循环,遇到“1”时开始计算面积,通过递归方法。(这里需要注意的是要对”垂直“,“水平”,即”上“,”下“,”左“,”右“进行寻找,只对两个方向遍历会遗漏遍历 ,如[[0,1][1,1]]。并且为了使已经遍历过的不再重复计算,在遍历后将其赋值为“0”表示已经遍历过了)。最后得出每次计算面积中的最大值即可...原创 2018-07-06 11:17:18 · 1947 阅读 · 3 评论 -
Java/463.(岛屿的周长) Island Perimeter
先上题目思路:前提(只存在一个小岛)1.遍历数组,找出所有单位土地2.分别计算所有单位土地的周长3.计算总和代码部分class Solution { public int islandPerimeter(int[][] grid) { int i,j,temp,result=0; for(i=0;i<grid.length;i++){ ...原创 2018-07-06 15:53:10 · 650 阅读 · 0 评论 -
C语言、Java/561.(数组拆分I) Array Partition I
先上题目思路:1.将数组排序2.将2n的数组分为n组3.计算最大和代码部分(C语言 )int cmp(const void *a,const void *b){ return *(int *)a-*(int *)b;}int arrayPairSum(int* nums, int numsSize) { int i,j,temp,len,result=0; ...原创 2018-07-06 21:28:34 · 515 阅读 · 0 评论 -
C语言/283.(移动零) Move Zeroes
先上题目 思路1.读取数组过程,计算数组中"0"的个数2.读取数组过程,设置标签index记录非"0"元素下标3.读取数组过程,按标签存入元素,最后在末尾补"0"代码部分void moveZeroes(int* nums, int numsSize) { int i,count=0,index=0; for(i=0;i<numsSize;i++){ if(nu...原创 2018-07-08 00:10:31 · 419 阅读 · 0 评论 -
C语言/693.(交替二进制数) Binary Number with Alternating Bits
先上题目思路:1.将输入数转换为二进制(此处采用循环%2)2.得到的每一位数与下一位数next_number相比,相同直接返回false;不同则result=true;循环结束后返回result代码部分bool hasAlternatingBits(int n) { int number,next_number; bool result=false; while(n){ ...原创 2018-07-08 00:20:45 · 463 阅读 · 0 评论 -
Java/169.(求众数) Majority Element
先上题目Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋times.You may assume that the array is non-empty and the majority element alw...原创 2018-07-15 00:27:32 · 641 阅读 · 0 评论 -
Java/888.两句话中不常见的单词
先上题目 代码部分 一、9msclass Solution { public String[] uncommonFromSentences(String A, String B) { String[] splitA = A.split(" "); String[] splitB = B.split(" "); ...原创 2018-08-12 12:15:31 · 870 阅读 · 1 评论 -
Java/102.Binary Tree Level Order Traversal 二叉树的层次遍历
一、Binary Tree Level Order Traversal I 代码部分一(1ms):class Solution { public List<List<Integer>> levelOrder(TreeNode root) { List<List<Integer>> res = new Arra...转载 2018-09-03 20:31:36 · 1245 阅读 · 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 评论 -
905. 按奇偶校验排序数组
题目 代码部分一(18ms)class Solution { public int[] sortArrayByParity(int[] A) { List<Integer> odd = new ArrayList(); // 储存奇数位 List<Integer> even = new Ar...转载 2018-09-17 15:09:44 · 1226 阅读 · 0 评论 -
Java/690.Employee Importance 员工的重要性
题目 代码部分(25ms BFS)class Solution { int res = 0; Employee employee; public int getImportance(List<Employee> employees, int id) { findId(employees, id); ...转载 2018-09-18 11:30:48 · 809 阅读 · 0 评论 -
Java/908. Smallest Range I 最小差值
题目 代码部分一(6ms)class Solution { public int smallestRangeI(int[] A, int K) { int max = Integer.MIN_VALUE; int min = Integer.MAX_VALUE; for(int i : A)...转载 2018-09-23 16:36:04 · 837 阅读 · 0 评论 -
Java/389. Find the Difference 找不同
题目 代码部分一(14ms 36.69%)class Solution { public char findTheDifference(String s, String t) { char res = ' '; Map<Character, Integer> mapS = new HashMap<Characte...转载 2018-09-25 10:50:20 · 1022 阅读 · 0 评论 -
Java/202. Happy Number 快乐数
题目 代码部分一(3ms 92.36%)class Solution { public boolean isHappy(int n) { Set<Integer> set = new HashSet<>(); while(n != 1 && !set.contains(n)){ ...转载 2018-09-25 22:22:01 · 953 阅读 · 0 评论 -
Java/387. First Unique Character in a String 字符串中第一个唯一字符
题目代码部分一(10ms 95.56%)class Solution { public int firstUniqChar(String s) { char[] ch = s.toCharArray(); int[] map = new int[256]; int res = -1; ...转载 2018-10-01 23:16:26 · 814 阅读 · 0 评论 -
Java/350. Intersection of Two Arrays II 两个数组的交集 II
题目 代码部分一(4ms 85.80%)class Solution { public int[] intersect(int[] nums1, int[] nums2) { List<Integer> list = new ArrayList<>(); Map<Integer, Integer...转载 2018-10-01 23:17:48 · 764 阅读 · 0 评论 -
Java/645. Set Mismatch 错误的集合
题目 代码部分一(6ms 100%)class Solution { public int[] findErrorNums(int[] nums) { int[] res = new int[2]; int[] index = new int[nums.length + 1]; for(int i = 0; ...转载 2018-10-01 23:33:57 · 648 阅读 · 0 评论 -
Java/429. N-ary Tree Level Order Traversal N叉树的层序遍历
题目 代码部分一(9ms)class Solution { List<List<Integer>> res = new ArrayList<List<Integer>>(); public List<List<Integer>> levelOrder(Node root) {...转载 2018-09-20 17:50:37 · 873 阅读 · 0 评论 -
Java/204. Count Primes 计数质数
题目 代码部分一(246ms, 15.70%)class Solution { public int countPrimes(int n) { if(n < 2) return 0; int res = 0; for(int i = 2; i < n; i++){ res ...转载 2018-10-02 23:25:04 · 658 阅读 · 0 评论 -
Java/409. Longest Palindrome 最长回文串
题目 代码部分一(14ms 63.68%)class Solution { public int longestPalindrome(String s) { int len = s.length(); Map<Character, Integer> map = new HashMap<&g...转载 2018-09-27 08:54:16 · 705 阅读 · 0 评论 -
Java/500. Keyboard Row 键盘行
题目 代码部分一(2ms 99.4%)class Solution { List<String> list = new ArrayList(); public String[] findWords(String[] words) { String frist = "QWERTYUIOPqwertyuiop"; ...转载 2018-09-21 17:10:46 · 646 阅读 · 0 评论 -
Java/575. Distribute Candies 分糖果
题目 代码部分一(73ms,82.46%)class Solution { public int distributeCandies(int[] candies) { Map<Integer, Integer> sister = new HashMap<Integer, Integer>(); int...转载 2018-09-22 18:11:19 · 655 阅读 · 0 评论 -
Java/136. Single Number 只出现一次的数字
题目 代码部分一(17ms 26.66%)class Solution { public int singleNumber(int[] nums) { Map<Integer, Integer> map = new HashMap<Integer, Integer>(); for(int i = 0;...转载 2018-09-22 18:55:51 · 739 阅读 · 0 评论 -
Java/811. Subdomain Vist Count 子域名访问计数
题目 代码部分一(23ms 89.75%)class Solution { public List<String> subdomainVisits(String[] cpdomains) { List<String> res = new ArrayList<>(); Map<...转载 2018-10-12 22:31:21 · 637 阅读 · 0 评论