查询到最新的12条

美团暑期实习自驾仿真算法二面面经

1.自我介绍 2.介绍自己的项目,问的不深。(10分钟) 3.编程题 (1)将一个节点数为 size 链表 m 位置到 n 位置之间的区间反转,要求时间复杂度 O(n),空间复杂度 O(1)。 例如: 给出的链表为 1→2→3→4→5→NULL, m=2,n=4, 返回1→4→3→2→5→NULL. 数据范围: 链表长度 0<size≤1000,链表中每个节点的值满足∣va 继续阅读

力扣算法刷题Day44|动态规划:完全背包问题 零钱兑换II 组合总和Ⅳ

力扣题目:#518.零钱兑换II(完全背包组合问题) 刷题时长:7min 解题方法:动态规划(完全背包) 复杂度分析 时间复杂度: O(mn),其中 m 是amount,n 是 coins 的长度空间复杂度: O(m) 问题总结 对递推公式的理解 本题收获 题意转换:纯完全背包是凑成背包最大价值是多少,而本题是要求凑成总金额的物 继续阅读

Java十大经典排序算法图解

0、算法概述 0.1 算法分类 十种常见排序算法可以分为两大类: 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。 非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。 0.2 算法复杂度 0.3 相关概念 稳定:如果a原本在b前面 继续阅读

二分查找 - 数据结构和算法教程

二分查找被定义为在排序数组中使用的一种搜索算法,它通过重复将搜索间隔分成两半来实现。二分查找的思想是利用数组被排序的信息,将时间复杂度降低到O(log N)。 在数据结构中应用二分查找的条件 数据结构必须排序。访问数据结构的任何元素都需要恒定的时间。 二分查找算法 在该算法中, 通过查找中间索引“mid”将搜索空间分成两半。 将搜索空间的中间元素与键进行比较。如果在中间元素处找到键,则终止该过程。如 继续阅读

bitset的基本用法

一、概念 bitset可以说是一个多位二进制数,每八位占用一个字节,因为支持基本的位运算,所以可用于状态压缩,n位bitset执行一次位运算的时间复杂度可视为n/32. 二、基本操作 1.定义: bitset< n > s; 表示一个n位的二进制数,<>中填写位数; 2.位运算操作符: ~s: 返回对s每一位取反后的结果; &&#xf 继续阅读

元字的最佳组合

我们如何找到元字的最佳组合呢?最简单的方法就是穷举,但这样的方式要求计算机计算的次数非常巨大,而且时间复杂度高达O(n^4)。本文将在代码实现中给出更为高效的方法。 一、顺序穷举法 首先介绍一种基本的穷举方法——顺序穷举法。从左向右,从上向下枚举每个元素,暴力枚举每一种组合方式,最后求解出最优解。 <?php function optimalCombination($array) { $len = count($array); $ma 继续阅读

Python素数判定模块

由于素数在计算机安全和密码学中的重要性,Python作为一门流行的编程语言,自然也提供了许多简便的方式来判断一个数是否为素数。本文就将从多个方面来阐述Python定义素数判定模块。 一、朴素判断法 朴素的素数判定方法就是判断一个数n是否存在小于n的正整数能够整除它。这样的解法虽然简单易行,但是效率非常低下,最坏情况下需要遍历所有小于n的正整数,时间复杂度为O(n)。 def is_prime(n): if n < 2: retu 继续阅读

旅行商问题的动态规划解决

  旅行商问题是一个著名的NP问题,不能找到多项式解。不过可以用动态规划的方法把时间复杂度从O(N!)降低到O   (2^N)。对于解决小规模的旅行商还是可以实现的。 http://icpc.ahu.edu.cn/OJ/Problem.aspx?id=420 发现枚举过程中还是有很多重复计算的,所以可以存贮一下状态,避免了重复计算。     开辟N+1维数组,dp[N][2][2]..[2] dp[cur] 继续阅读

l0phtcrack 7(爆破管理员密码)使用教程

l0phtcrack7简称lc7,是爆破计算机管理员密码的软件,早期是网络安全管理员用来检测系统用户是否使用了不安全的密码,后被黑客用于用户口令破解 功能:该工具支持远程破解,理论上能破解所有密码,但对复杂度比较高的密码,破解时间很长 使用前提:1.登录了需要破解的计算机 2.知道需要破解的计算机的一个管理员的账户,密码 ** 也许你会疑惑,我 继续阅读

Windows 10 神州网信政府版密码设置及登录设置 Ctrl+alt+del

一、Windows 10 神州网信政府版密码复杂度设置: 1、鼠标右键点击屏幕左下角的开始菜单图标,选择windows中的“运行” 2、输入gpedit.msc 并确定。 3、找到: 计算机配置->Windows设置->安全设置->账户策略->密码策略,根据需要将里面的以下项目修改就可以,可以随便设置密码。 (1)、密码必须符合复杂性要求设置为禁用。 &#xff08 继续阅读

leetcode 77. Combinations-排列|递归|非递归|Java|Python

原题链接:77. Combinations 【思路-Java、Python】递归实现 采用回溯算法。这是一道 NP 难问题,时间复杂度没办法提高,用一个循环递归处理子问题,问题的终止条件是每个组合中的元素个数达到 k 个: public class Solution {public List<List<Integer>> combine(int n, int k) {List<List& 继续阅读