【408 2019算法题目】教程文章相关的互联网学习教程文章

刷一下leetcode算法题,寻找两个正序数组的中位数【代码】【图】

寻找两个正序数组的中位数 class Solution { public:double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {int len1 = nums1.size();int len2 = nums2.size();int mid = (len1 + len2) / 2;bool odd = (len1 + len2) % 2 != 0;//奇数mid = odd ? mid++ : mid;if (len1 == 0 || len2 == 0) {vector<int>& nums = len1 == 0 ? nums2 : nums1;return odd? nums[mid]: (nums[mid-1]+(nums[mid]))/2.0 ;}int i1 = 0...

算法题【代码】

1. 已知如下数组:var arr = [ [1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14] ] ] ], 10]; 编写一个程序将数组扁平化去并除其中重复部分数据,最终得到一个升序且不重复的数组[...new Set(arr.flat(Infinity))].sort((a,b)=>{return a - b});//使用 Infinity 作为深度,展开任意深度的嵌套数组

3-7(单链表的相关算法题)

今天还是继续刷单链表的相关算法题1、链表分割:就是将一个链表的值按照小于x或者大于等于x排序,但不改变相对位置。如链表1-3-5-2-6-7-4.x==4排序后的单链表应该为1-3-2-5-6-7-4;思想:定义2个头结点lesshead,greathead,并且需要2个尾节点lesstail,greattail;这个方面需要注意一点就是头结点的定义不是和指针定义一样,节点的定义需要malloc申请,listnode lesshead=(listnode)malloc(sizeof(listnode));第二步需要定义一个cur指...

力扣算法题【代码】

两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。 但是,数组中同一个元素不能使用两遍。 思路一:暴力枚举 将数组中的每个元素都拿来与后面的元素逐一相加,然后与目标值作比较,如果正确则直接返回下标值。 那么,就会有最坏的情况:循环遍历完数组的所有元素 代码如下: var twoSum = function (nums, target) {// 输入不是一个数组 直接返回if...

基础向算法题练习记录【代码】【图】

基础向算法题练习记录 文章目录 基础向算法题练习记录最大回文乘积平方的和与和的平方之差连续数字最大乘积方阵中的最大乘积大和最长考拉兹序列网格路径最大路径和1000位斐波那契数最大回文乘积 回文数就是从前往后读和从后往前读都一样的数。由两个2位数相乘得到的最大的回文数是 9009=9199。 求由两个3位数相乘得到的最大的回文数。 暴力枚举把得到的答案拆解对调和原数比对加入循环找出其中最大的,分层写代码可读性好 #include...

算法题:找到1到n(乱序)中缺失的两个数【代码】

要求用O(n)的时间复杂度进行查找: 1. 申请额外空间n个空间,记录当前数字是否出现过 def find1(a, n):res = []b = [0 for x in range(n)]for i in a:b[i-1] = 1for i in range(n):if b[i] == 0:res.append(i+1)return res 2.利用数学公式,先求1到n的平方和和1到n的平方和,再求1到n的平方和和1到n的和,两式相减解方程 def find2(a, n):sum1, sum2, sum1_, sum2_ = 0, 0, 0, 0for i in a:sum1 += isum1_ += i**2for i in range...

Leetcode贪心算法题【代码】

贪心算法 遵循某种规律,不断贪心的选取当前最优策略的算法设计方法考虑条件,只有证明当前最优解是全局最优解时,贪心成立高频面试问题考察思维方式, 数据结构简单即可解决找不到反例的情况 55. 跳越游戏 I (Medium) 给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标。示例 1: 输入:nums = [2,3,1,1,4] 输出:true 解释:可以先跳...

前端面试算法题【代码】

一、不借助临时变量,进行两个整数的交换//方法一 ES6 var a = 1, b = 2; [a,b] = [b,a]; console.log(a,b)// 方法二 异或运算,同为0或者同为1都为0,10为1 var c = 3, d = 4; c = c ^ d; d = c ^ d; c = c ^ d; console.log(c,d) 二、字符串查找:请使用最基本的遍历来实现判断字符串 a 是否被包含在字符串 b 中,并返回第一次出现的位置(找不到返回 -1)。 例子: a='34';b='1234567'; // 返回 2 a='35';b='1234567'; // 返回 -...

算法题2【代码】

1.求质数public class Prime {public static void main(String[] args) { // 存放所有得到的质数int[] prime = new int[1000]; // 当前存放位置int pos = 0;//遍历数字for (int i = 2; i < 1000; i++) {//代表是否为有其他因数的boolean变量boolean y = false;// 遍历所有得到的质数for (int j = 0; j < prime.length && !y && prime[j] !=0; j++) {// 如果有余数为零的,则代表当前数字不是质数if (i % prime[j] ...

leetcode常规算法题复盘(第十六期)——数据流中的第 K 大元素【代码】【图】

题目原文 703. 数据流中的第 K 大元素设计一个找到数据流中第 k 大元素的类(class)。注意是排序后的第 k 大元素,不是第 k 个不同的元素。 请实现 KthLargest 类:KthLargest(int k, int[] nums) 使用整数 k 和整数流 nums 初始化对象。 int add(int val) 将 val 插入数据流 nums 后,返回当前数据流中第 k 大的元素。 示例: 输入: ["KthLargest", "add", "add", "add", "add", "add"] [[3, [4, 5, 8, 2]], [3], [5], [10], [...

android计步器!分享两道阿里P7究极难度算法题,附赠课程+题库【图】

谈起Android框架体系架构,我先提个问:什么是Android框架体系架构 ? Android系统构架是安卓系统的体系结构,android的系统架构和其操作系统一样,采用了分层的架构,共分为四层,从高到低分别是Android应用层,Android应用框架层,Android系统运行库层和Linux内核层。 Android系统构架主要应用于ARM平台,但不仅限于ARM,通过编译控制,在X86、MAC等体系结构的机器上同样可以运行。 而今天咱要聊的就是Alibaba珍藏版 Android框架...

算法题:统计一个字符串中各个字符出现的个数【代码】

思路: 使用HashMap或者TreeMap 以键值对的方式进行存储,区别是HashMap不会自动排顺序,而TreeMap是自动排序的。初始化变量value = 0;遍历字符串中的每个字符,如果map中包含这个字符,则得到他的value,并加1,并将value 置为0;如果不包含,则加1。treeMap.put(c, value+1) 这个语句是万能的。 代码如下: import java.util.Scanner; import java.util.TreeMap;public class NumberOfStrings {public static TreeMap count(Str...

算法题复习(回溯)【代码】

目录 base code棋盘问题51. N 皇后37. 解数独 组合问题77. 组合未剪枝优化剪枝优化 216. 组合总和 III未剪枝优化剪枝优化 17. 电话号码的字母组合39. 组合总和未剪枝优化剪枝优化 40. 组合总和 II,挺重要的,涉及到去重了 切割问题131. 分割回文串 子集问题78. 子集90. 子集 II,有树层去重491. 递增子序列,也需要数层去重,使用unordered_set 排列问题46. 全排列47. 全排列 II + 数层去重 行程安排+高级容器的使用,现在还没吃透b...

leetcode算法题(1题,C++)【代码】

1.解答 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。 原题链接:https://leetcode-cn.com/problems/two-sum/ 下面是我写的代码: #include<iostream>void main() {/***********数据部分**************/int num[4] = { 2,6,7,8 };int target = 13;/**************处理部分**************/int output[2];//for (int i = 0; i < sizeof(num) / sizeof(num[...

一篇搞定前端高频手撕算法题(36道)【代码】

目前互联网行业目前正在处于内卷状态,各个大厂不断提高招人门槛,前端工程师找工作也越发艰难,为了助力各位老铁能够在面试过程中脱颖而出,我结合自己的面试经验,准备了这三十六道面试过程中的手撕算法题,与各位共享。一、冒泡排序冒泡排序的思路:遍历数组,然后将最大数沉到最底部;时间复杂度:O(N^2);空间复杂度:O(1)function BubbleSort(arr) {if(arr == null || arr.length <= 0){return [];}var len = arr.length;for...