mySqrt-链接
实现的代码如下:
123456class Solution {public: int mySqrt(int x) { return sqrt(x); }};
一道很水的题……
majorityElement-链接
实现的代码如下:
1234567class Solution {public: int majorityElement(vector<int>& nums) { sort(nums.begin(),nums.end()); return nums[nums.size()/2]; }};
这题如果暴力两遍循环的话只能过42个数据点,还有2个过不了,所以考虑用到sort排序的话就是O(nlogn)的时间复杂度了,然后就AC
plusone-链接
实现的代码如下:
1234567891011121314151617181920212223242526272829class Solution {public: vector<int> plusOne(vector<int>& digits) { int k=digits.size()-1; digits[k]+=1; int m=0; while(digits[k]>9) //每次加一后看它会不会进位,如果进位就继续循环 ...
conutPrimes-链接
实现的代码如下:
1234567891011121314151617181920212223class Solution {public: int countPrimes(int n) { int count=0; for(int i=2;i<n;i++) //题目给的是小于n; { int x=1; //给出一个标记 for(int j=2;j*j<=i;j++) { ...
bool isPalindrome-链接
实现的代码如下:
123456789101112131415161718class Solution {public: bool isPalindrome(int x) { long long ans=0,sign,x1=x;//定义long long类型以防溢出 sign=(x<0)? -1:1; while(x) { ans=ans*10+x%10; x/=10; ...
Tow Sum-链接
实现的代码如下:
12345678910111213141516171819class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { vector<int>ans; for(int i=0;i<nums.size();i++) { for(int j=i+1;j<nums.size();j++) ...
Digital inversion-链接
实现的代码如下:
1234567891011121314151617181920class Solution {public: int reverse(int x) { if(x==0) return 0; long long sum=0; //如果这里是int类型就会爆数据 //因为反过来后的数可能会溢出 while(x!=0) { sum=sum*10+(x...
这是一个简单的DP,类似于斐波那契数列。附上题目链接
实现的代码如下:
1234567891011121314151617181920212223242526#include<iostream>#include<vector>using namespace std;vector <int>memo;class Solution {public: int climbStairs(int n) { vector<int> data(n + 1, -1); data[0] = 1; ...
有时候自己学了很久很久,学习的效果还是不好,慢慢反思,后来发现自己一直把大量的时间来学习新的知识,旧的知识基本上没有留什么时间来消化,最后的最后就是“感觉自己什么都学了,但是自己什么都不会”。学习有点乱的时候停一停,给了自己一些缓解的时间,找到问题的症结除治,然后努力在原有的基础上有新的突破……众所周知,我们学了很多的排序算法,真的学多了之后会特别的乱,所以特别的想花点时间整理一下O(∩_∩)O~
首先,是最简单的初级排序算法
1.选择排序12345678910111213141516//选择排序的时间复杂度为O(n^2);//本排序是由小到大排的void SelectionSort(i...
说明一下:因为这是自己第一次在博客上写题解,自己刚好又做了一个模板题,所以就Git上来了…..(^__^) xixi
题目描述如题,现在有一个并查集,你需要完成合并和查询操作。
输入输出格式
输入格式:1、第一行包含两个整数N、M,表示共有N个元素和M个操作。
2、接下来M行,每行包含三个整数Zi、Xi、Yi
3、当Zi=1时,将Xi与Yi所在的集合合并
4、当Zi=2时,输出Xi与Yi是否在同一集合内,是的话输出Y;否则话输出N
输出格式:如上,对于每一个Zi=2的操作,都有一行输出,每行包含一个大写字母,为Y或者N
输入输出样例
输入样例#1:
123456784 72 1 21 1...