L++

leetcode 15 3Sum

送分小仙女□ 提交于 2020-04-24 08:08:55
15. 3Sum 题目描述 Given an array nums of n integers, are there elements a, b, c in nums such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero. Note: The solution set must not contain duplicate triplets. Example: Given array nums = [-1, 0, 1, 2, -1, -4], A solution set is: [ [-1, 0, 1], [-1, -1, 2] ] 给出一个有n个元素的数组S,S中是否有元素a,b,c满足a+b+c=0?找出数组S中所有满足条件的三元组。 注意: 三元组(a、b、c、d)中的元素必须按非降序排列。(即a≤b≤c) 解集中不能包含重复的三元组。 例如,给定的数组 S = {-1 0 1 2 -1 -4},↵↵ 解集为:↵ (-1, 0, 1)↵ (-1, -1, 2) 思路分析 暴力解决法是每个人都能想到的,三层for循环,时间复杂度是O(n^3),而且还要处理重复的问题,显然不是题目想要的解法。 那能不能降到O(n^2)?排序算法的时间复杂度为O(nlgn

Codeforces Round #633 (Div. 2)

时光怂恿深爱的人放手 提交于 2020-04-20 07:21:27
You have integer n n. Calculate how many ways are there to fully cover belt-like area of 4 n − 2 4n−2 triangles with diamond shapes. Diamond shape consists of two triangles. You can move, rotate or flip the shape, but you cannot scale it. 2 2 coverings are different if some 2 2 triangles are covered by the same diamond shape in one of them and by different diamond shapes in the other one. Please look at pictures below for better understanding. On the left you can see the diamond shape you will use, and on the right you can see the area you want to fill. These are the figures of the area you

bzoj:4241: 历史研究

安稳与你 提交于 2020-04-19 23:10:44
Description IOI国历史研究的第一人——JOI教授,最近获得了一份被认为是古代IOI国的住民写下的日记。JOI教授为了通过这份日记来研究古代IOI国的生活,开始着手调查日记中记载的事件。 日记中记录了连续N天发生的时间,大约每天发生一件。 事件有种类之分。第i天(1<=i<=N)发生的事件的种类用一个整数Xi表示,Xi越大,事件的规模就越大。 JOI教授决定用如下的方法分析这些日记: 1. 选择日记中连续的一些天作为分析的时间段 2. 事件种类t的重要度为t*(这段时间内重要度为t的事件数) 3. 计算出所有事件种类的重要度,输出其中的最大值 现在你被要求制作一个帮助教授分析的程序,每次给出分析的区间,你需要输出重要度的最大值。 Input 第一行两个空格分隔的整数N和Q,表示日记一共记录了N天,询问有Q次。 接下来一行N个空格分隔的整数X1...XN,Xi表示第i天发生的事件的种类 接下来Q行,第i行(1<=i<=Q)有两个空格分隔整数Ai和Bi,表示第i次询问的区间为[Ai,Bi]。 Output 输出Q行,第i行(1<=i<=Q)一个整数,表示第i次询问的最大重要度 Sample Input 5 5 9 8 7 8 9 1 2 3 4 4 4 1 4 2 4 Sample Output 9 8 8 16 16 HINT 1<=N<=10^5 1<=Q<=10^5

c语言求方阵的行列式、伴随矩阵算法

孤者浪人 提交于 2020-04-14 19:22:05
【推荐阅读】微服务还能火多久?>>> #include<stdio.h> #include<math.h> #define N 100 //N比输入的阶数大即可 int main() { int n,a[N][N],b[N][N],i,j; int row_col_times(int b[N][N],int n); void adgujate_matrix(int s[N][N],int n); printf("请输入方阵阶数:\n"); scanf("%d",&n); printf("请输入%d阶的方阵(用空格隔开)\n",n); for(i=0;i<n;i++) for(j=0;j<n;j++) scanf("%d",&a[i][j]); printf("您输入的%d阶方阵是:\n"); for(i=0;i<n;i++) {for(j=0;j<n;j++) {printf("%3d",a[i][j]); b[i][j]=a[i][j]; }//右对齐输出矩阵 printf("\n");} printf("该矩阵的伴随矩阵是;:\n"); adgujate_matrix(b,n);//调用伴随矩阵函数 printf("该矩阵的行列式为: %d\n",row_col_times(a,n));//调用行列式乘积函数 return 0; } int row_col_times(int

leetcode-数组排序

让人想犯罪 __ 提交于 2020-04-06 06:00:10
我还是太菜了啊,基础的排序算法已经忘记了,今天花一晚上一定要记牢!!!!! 以下取自评论区优质代码 public int[] sortArray(int[] nums) { if(nums.length <=1)return nums; //qSort(nums,0,nums.length-1); //selectSort(nums); // insertSort(nums); // shellSort(nums); // bucketSort(nums); // countSort(nums); // mergeSort(nums,0,nums.length-1); heapSort(nums); return nums; } /** 快速排序 **/ void qSort(int[] arr,int s,int e){ int l = s, r = e; if(l < r){ int temp = arr[l]; while(l < r){ while(l < r && arr[r] >= temp) r--; if(l < r) arr[l] = arr[r]; while(l < r && arr[l] < temp) l++; if(l < r) arr[r] = arr[l]; } arr[l] = temp; qSort(arr,s,l); qSort(arr,l +

AndroidFm模块学习之四源码解析(十一)

大城市里の小女人 提交于 2019-11-28 10:19:48
接上一篇,接下来看看android\vendor\qcom\opensource\fm\fmapp2\src\com\caf\fmradio\FmTags.java 当点击FMRadio.java菜单的全部频道选项,跳转到FmTags.java类 定义了一个ListView控件和一个简单适配器 private ListView la; private ArrayAdapter<String> adapter; 使用Handler刷新UI界面 private final Handler mHandler = newHandler(); 使用迭代器private Iterator itr; 将FmSharedPreferences类取出数据迭代化,再使用循环添加到字符数组里,使用适配器显示。 final Runnable mDisplayTagList = new Runnable() { public void run() { String[] tags; int l = 0; tags = new String[FmSharedPreferences.num_tags]; for(int i = 0; i < FmSharedPreferences.MAX_NUM_TAG_TYPES; i++) { if (FmSharedPreferences.tagList[i] !=