C++
behboyhiex
这个作者很懒,什么都没留下…
展开
-
幂专题
幂专题 1、判断是否为2的幂 class Solution { public: bool isPowerOfTwo(int n) { if(n<=0) return false; return (n&(n-1)) == 0; } }; 2、判断是否为4的幂 方法1 与0x55555555(奇数位全为1) 与 class Solutio...原创 2020-04-14 01:09:14 · 223 阅读 · 0 评论 -
vector使用
vector<vector<int> > array(3);注意>和>之间的空格。array可以保存3个向量,向量的长度是可以改变的。array[i]返回的是第i个向量。同理,array[i][j]返回的是第i个向量中的第j个元素。使用array2[1].push_back(9)或者vector< vector<int> > array...原创 2018-03-27 11:13:07 · 156 阅读 · 0 评论 -
Leetcode 78. Subsets C++ beat100%
Leetcode 78. Subsets C++ beat100% Given a set of distinct integers, nums, return all possible subsets (the power set).Note: The solution set must not contain duplicate subsets.Example:Input: nums = [...原创 2018-05-12 16:02:26 · 759 阅读 · 1 评论 -
需要排序的最短子数组的长度
【题目】 给定一个无序数组arr,求出需要排序的最短子数组长度。 例如: arr = [1, 5, 3, 4, 2, 6, 7]返回4,因为只有[5, 3, 4, 2]需要排序。【思路】 双指针 第一次从左向右遍历,找左边比当前位置大的 第二次从右向左遍历,找右边比当前位置小的【代码】int findMinUnSortArray(int *arr ,...原创 2018-06-21 12:45:09 · 1096 阅读 · 0 评论 -
牛客算法-求约数个数和
题目描述:给个n,求1到n的所有数的约数个数的和输入描述:第一行一个正整数n输出描述:输出一个整数,表示答案例输入:3 输出:5样例解释: 1有1个约数1 2有2个约数1,2 3有2个约数1,3备注:n <= 100000000 #include <iostream> using namespace std; int main() { long i,res,n; c...原创 2018-06-14 09:50:13 · 730 阅读 · 1 评论 -
算法-并查集-加边无向图
题目描述:给你一个 n 个点,m 条边的无向图,求至少要在这个的基础上加多少条无向边使得任意两个点可达~ 输入描述:第一行两个正整数 n 和 m 。 接下来的m行中,每行两个正整数 i 、 j ,表示点i与点j之间有一条无向道路。输出描述:输出一个整数,表示答案例 :输入4 2 1 2 3 4输出:1备注:对于100%的数据,有n,m<=100000。#include<iostream...原创 2018-06-14 10:15:01 · 1179 阅读 · 0 评论 -
算法-最短子数组
给定一个无序数组arr,求出需要排序的最短子数组长度。例如:arr = [1,5,3,4,2,6,7]返回4,因为只有[5,3,4,2]需要排序。分析: 这道题思路在于两次遍历,第一次找到左边是否存在比当前位置大的元素,第二次找到右边是否存在比当前位置元素小的,然后相减// 两次遍历,时间复杂度为O(N),第一次找到左边是否存在比当前位置大的元素,第二次找到右边是否存在比当前位置元素小的 // 然...原创 2018-06-14 10:56:27 · 388 阅读 · 0 评论 -
算法-最大的LeftMax与rightMax之差绝对值
算法-最大的LeftMax与rightMax之差绝对值给定一个长度为N的整型数组arr,可以划分成左右两个部分:左部分arr[0..K],右部分arr[K+1..arr.length-1],K可以取值的范围是[0,arr.length-2]求这么多划分方案中,左部分中的最大值减去右部分最大值的绝对值,最大是多少? 例如: [2,7,3,1,1]当左部分为[2,7],右部分为[3,1,1]时,左部分...原创 2018-06-14 11:48:24 · 373 阅读 · 0 评论 -
Leetcode 300 最长递归子序列
Leetcode 300 最长递归子序列给定一个未排序的整数数组,找到最长的递增子序列的长度。例:输入:[10,9,2,5,3,7,101,18] 输出: 4 说明:最长的子序列是[2,3,7,101],因此长度是4。class Solution { public: int lengthOfLIS(vector<int>& nums) { if (nu...原创 2018-06-20 15:04:51 · 615 阅读 · 0 评论