给出代码 #include <stdio.h> #include <unistd.h> #include <iostream> #include <memory.h> #include <string.h> int main() { typedef int data_type; data_type a[] = {1,4,6,7,7,8,4,9,1,7,6,4,1,2,0,0}; const char* hint = "The origi…
方法1:先对数组进行排序,然后遍历前K个数,此时时间复杂度为O(nlgn); 方法2:维护一个容量为K的最大堆(<算法导论>第6章),然后从第K+1个元素开始遍历,和堆中的最大元素比较,如果大于最大元素则忽略,如果小于最大元素则将次元素送入堆中,并将堆的最大元素删除,调整堆的结构; 方法3:使用快速排序的原理,选择出数组中第K大的元素,select(a[], k, low, high) 选取数组中a[high]为基准,将数组分割为A1和A2,A1中的元素都比a[high]小,A[2]中的元素都…
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-…
题目链接: https://leetcode.com/problems/remove-duplicates-from-sorted-array/?tab=Description   从有序数组中移除重复数字,并且返回不重复数字的个数   遍历操作: 可以使用新的for循环 for (int n : nums){}   每次进行对比,并且更新第一个遇到不相等的元素的下标为i 对数组进行重新赋值操作   当数组长度大于1时,ans初值为1,当数组长度为0时,返回0   参考代码 :   packag…
题目: 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 always exist in the array. 思路:可以利用Dictionary将数组中每个数…
package TestArray; import java.util.Arrays; /** * 二分法查找 */ public class Test { public static void main(String[] args) { int[] arr = {30, 20, 50, 10, 80, 9, 7, 12, 100, 40, 8}; int searchWord = 20; /** * 二分法执行前,一定要排序 */ Arrays.sort(arr); //二分法查找之前,一定要…
面试南大夏令营的同学说被问到了这个问题,我的第一反应是建小顶堆,但是据他说用的是快排的方法说是O(n)的时间复杂度, 但是后来经过我的考证,这个算法在最坏的情况下是O(n^2)的,但是使用堆在一般情况下是O(n+klogn),最坏的情况是O(nlogn) 把两种方法整理一下,我还是推荐使用小顶堆的方法,因为它不仅可以求第K大,还可以求前K大... 一.快排.借用了快排的partition思想,其实是一种分治的方法.对于一个partition,他左边的数小于他,右边的数全大于他 那么: 1.如果他…
原创作品,转载请注明出处:https://www.cnblogs.com/sunshine5683/p/9927186.html 今天在工作中遇到对一个已知的一维数组取出其最大值和最小值,分别用于参与其他运算,废话不多说,直接上代码. package xhq.text; public class Maxmin { static int count =0; public static void main(String args[]){ // 实例化对象 Maxmin maxmin = new Ma…
let arr = [11, 11, 2, 2, 5, 5, 5, 5, 3]; //创建一个map,把每个数字和其个数相对应 let countObj = {}; for (i = 0; i <= arr.length - 1; i++) {     let v = arr[i];     if (countObj[v]) {         countObj[v]++;     } else {         countObj[v] = 1;     } } // console.log(…
SPOJ Problem Set (classical) 694. Distinct Substrings Problem code: DISUBSTR Given a string, we need to find the total number of its distinct substrings. Input T- number of test cases. T<=20; Each test case consists of one string, whose length is <=…