算法练习
文章平均质量分 87
算法之于程序员,如菜刀之于厨师
空城机
光阴雕琢生命,岁月磨砺人生
成为一个普通的上班族
展开
-
分类器的训练进行目标识别,以车辆识别为例
目录一、从网络上下载或者自己找到的图片中裁剪挑选出合适的图片。二、在negdata和posdata文件夹准备好之后,使用命令提示符(win + r),输入cmd,把位置切换到posdata文件夹的位置。三、找到自己下载的OpenCV文件夹,打开opencv,打开build,打开x64,打开vc14,打开bin文件夹。四、打开cmd,在该文件目录下输入“ opencv_creates...原创 2018-09-24 22:26:24 · 5386 阅读 · 3 评论 -
JavaScript 进阶——井字棋游戏智能AI搭建
目录井字棋游戏准备的HTML:准备的CSS:第一部分点击出现O的JS代码:现阶段效果:第二部分:判断胜利现阶段结果:第三部分:简单的智能AI现阶段结果:第四部分:之前我们很容易就能击败AI,所以现在要强化AI的难度完整JavaScript代码:结果:不多说了,还没赢过????学习来源:JavaScript井字棋游戏开发与AI算法井字棋游戏...原创 2020-03-15 23:10:13 · 3571 阅读 · 2 评论 -
力扣一日一练(39)——消失的数字
题目:消失的数字数组nums包含从0到n的所有整数,但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在O(n)时间内完成吗?注意:本题相对书上原题稍作改动示例示例 1:输入:[3,0,1]输出:2示例 2:输入:[9,6,4,2,3,5,7,0,1]输出:8使用JavaScript语言/** * @param {number[]} nums...原创 2020-02-27 19:08:27 · 232 阅读 · 0 评论 -
力扣一日一练(38)——除数博弈
题目:除数博弈爱丽丝和鲍勃一起玩游戏,他们轮流行动。爱丽丝先手开局。最初,黑板上有一个数字N。在每个玩家的回合,玩家需要执行以下操作:选出任一x,满足0 < x < N 且N % x == 0。用 N - x替换黑板上的数字 N 。如果玩家无法执行这些操作,就会输掉游戏。只有在爱丽丝在游戏中取得胜利时才返回True,否则返回 false。假设两个玩家...原创 2020-02-26 20:22:56 · 242 阅读 · 0 评论 -
算法 动态规划学习——背包问题
动态规划动态规划,又名DP算法(取自其Dynamic Programming的缩写),最初是运筹学的一个分支,是用来求解决策过程最优化的数学方法。动态规划算法通常用于求解具有某种最优性质的问题。动态规划应用场景:适用动态规划的问题必须满足最优化原理、无后效性和重叠性。1、最优化原理(最优子结构性质) 最优化原理可这样阐述:一个最优化策略具有这样的性质,不论过去状态和决策如何,对前...原创 2020-02-26 19:53:22 · 744 阅读 · 0 评论 -
力扣一日一练(37)——四数之和
题目:四数之和给定一个包含n 个整数的数组nums和一个目标值target,判断nums中是否存在四个元素 a,b,c和 d,使得a + b + c + d的值与target相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。示例示例:给定数组 nums = [1, 0, -1, 0, -2, 2],和 target =...原创 2020-02-22 21:12:22 · 153 阅读 · 0 评论 -
力扣一日一练(36)——实现strStr()
题目:实现strStr()实现strStr()函数。给定一个haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回-1。示例示例 1:输入: haystack = "hello", needle = "ll"输出: 2示例 2:输入: haystac...原创 2020-02-17 14:29:26 · 221 阅读 · 0 评论 -
力扣一日一练(35)——位1的个数
题目:位1的个数编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’的个数(也被称为汉明重量)。示例示例 1:输入:00000000000000000000000000001011输出:3解释:输入的二进制串 00000000000000000000000000001011中,共有三位为 '1'。示例 2:输入:00000000000000...原创 2020-02-14 13:49:22 · 135 阅读 · 0 评论 -
力扣一日一练(34)——求1+2+...+n(不允许用循环语句)
题目:求1+2+...+n求 1+2+...+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。示例示例 1:输入: n = 3输出:6示例 2:输入: n = 9输出:45限制:1 <= n<= 10000使用JavaScript语言/** * @p...原创 2020-02-13 14:07:03 · 172 阅读 · 0 评论 -
力扣一日一练(33)——剪绳子
题目:剪绳子给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m≥1),每段绳子的长度记为k[0],k[1]...k[m] 。请问 k[0]*k[1]*...*k[m] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。示例示例 1:输入: 2输出: 1解释: ...原创 2020-02-12 13:40:34 · 625 阅读 · 0 评论 -
力扣一日一练(32)——有趣的电影
题目:有趣的电影SQL架构:Create table If Not Exists cinema (id int, movie varchar(255), description varchar(255), rating float(2, 1))Truncate table cinemainsert into cinema (id, movie, description, rating...原创 2020-02-11 12:44:23 · 202 阅读 · 0 评论 -
力扣一日一练(31)——宝石与石头
题目:宝石与石头给定字符串J代表石头中宝石的类型,和字符串S代表你拥有的石头。S中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。J中的字母不重复,J和S中的所有字符都是字母。字母区分大小写,因此"a"和"A"是不同类型的石头。示例示例 1:输入: J = "aA", S = "aAAbbbb"输出: 3示例 2:...原创 2020-02-10 13:27:51 · 207 阅读 · 0 评论 -
力扣一日一练(30)——将数字变成0的操作次数
题目:将数字变成0的操作次数给你一个非负整数num,请你返回将它变成 0 所需要的步数。 如果当前数字是偶数,你需要把它除以 2 ;否则,减去 1 。示例示例 1:输入:num = 14输出:6解释:步骤 1) 14 是偶数,除以 2 得到 7 。步骤 2) 7 是奇数,减 1 得到 6 。步骤 3) 6 是偶数,除以 2 得到 3 。步骤 4) 3 是奇数...原创 2020-02-09 19:37:40 · 319 阅读 · 0 评论 -
力扣一日一练(29)——猜数字
题目:猜数字小A 和 小B 在玩猜数字。小B 每次从 1, 2, 3 中随机选择一个,小A 每次也从 1, 2, 3 中选择一个猜。他们一共进行三次这个游戏,请返回 小A 猜对了几次?输入的guess数组为 小A 每次的猜测,answer数组为 小B 每次的选择。guess和answer的长度都等于3。示例示例 1:输入:guess = [1,2,3], answer ...原创 2020-02-08 15:49:04 · 313 阅读 · 0 评论 -
力扣一日一练(28)——解压缩编码列表
题目:解压缩编码列表给你一个以行程长度编码压缩的整数列表nums。考虑每对相邻的两个元素 [a, b] = [nums[2*i], nums[2*i+1]](其中i >= 0),每一对都表示解压后有 a个值为b的元素。请你返回解压后的列表。示例示例:输入:nums = [1,2,3,4]输出:[2,4,4,4]解释:第一对 [1,2] 代表...原创 2020-02-07 14:29:47 · 199 阅读 · 0 评论 -
力扣一日一练(27)——保持城市天际线
题目:保持城市天际线在二维数组grid中,grid[i][j]代表位于某处的建筑物的高度。 我们被允许增加任何数量(不同建筑物的数量可能不同)的建筑物的高度。 高度 0 也被认为是建筑物。最后,从新数组的所有四个方向(即顶部,底部,左侧和右侧)观看的“天际线”必须与原始数组的天际线相同。 城市的天际线是从远处观看时,由所有建筑物形成的矩形的外部轮廓。 请看下面的例子。建筑物高度可以增加...原创 2020-02-06 14:21:30 · 468 阅读 · 0 评论 -
力扣一日一练(26)——大的国家
题目:大的国家SQL架构Create table If Not Exists World (name varchar(255), continent varchar(255), area int, population int, gdp int)Truncate table Worldinsert into World (name, continent, area, populati...原创 2020-02-05 13:56:00 · 165 阅读 · 0 评论 -
力扣一日一练(25)——交替位二进制数
题目:交替位二进制数给定一个正整数,检查他是否为交替位二进制数:换句话说,就是他的二进制数相邻的两个位数永不相等。示例示例 1:输入: 5输出: True解释:5的二进制数是: 101示例 2:输入: 7输出: False解释:7的二进制数是: 111示例3:输入: 11输出: False解释:11的二进制数是: 1011示例 4:输入:...原创 2020-02-04 20:46:59 · 261 阅读 · 0 评论 -
力扣一日一练(24)——猜数字游戏
题目:猜数字游戏你正在和你的朋友玩猜数字(Bulls and Cows)游戏:你写下一个数字让你的朋友猜。每次他猜测后,你给他一个提示,告诉他有多少位数字和确切位置都猜对了(称为“Bulls”, 公牛),有多少位数字猜对了但是位置不对(称为“Cows”, 奶牛)。你的朋友将会根据提示继续猜,直到猜出秘密数字。请写出一个根据秘密数字和朋友的猜测数返回提示的函数,用 A 表示公牛,用B表...原创 2020-02-03 22:57:21 · 456 阅读 · 0 评论 -
力扣一日一练(23)——排列硬币
题目:排列硬币你总共有n枚硬币,你需要将它们摆成一个阶梯形状,第k行就必须正好有k枚硬币。给定一个数字n,找出可形成完整阶梯行的总行数。n是一个非负整数,并且在32位有符号整型的范围内。示例示例 1:n = 5硬币可排列成以下几行:¤¤ ¤¤ ¤因为第三行不完整,所以返回2.示例 2:n = 8硬币可排列成以下几行:¤¤ ¤...原创 2020-02-03 22:10:24 · 321 阅读 · 0 评论 -
力扣一日一练(22)——飞机座位分配概率
题目:飞机座位分配概率有 n 位乘客即将登机,飞机正好有 n 个座位。第一位乘客的票丢了,他随便选了一个座位坐下。剩下的乘客将会:如果他们自己的座位还空着,就坐到自己的座位上,当他们自己的座位被占用时,随机选择其他座位第 n位乘客坐在自己的座位上的概率是多少?示例示例 1:输入:n = 1输出:1.00000解释:第一个人只会坐在自己的位置上。示例 ...原创 2020-02-01 14:30:17 · 912 阅读 · 0 评论 -
力扣一日一练(21)——电话号码字母的组合
题目:电话号码字母的组合给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].说明:尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序...原创 2020-01-31 12:09:54 · 227 阅读 · 0 评论 -
使用JavaScript解析XML文件
使用JavaScript的方式去解析xml文件xml文件内容:<?xml version="1.0" encoding="gb2312"?><interface name="0101" type="interface" title="0101-Current account opening-活期开户" align="0" left="10" top="10" hei...原创 2019-10-20 18:46:07 · 580 阅读 · 0 评论 -
前端笔试——数字金额转中文
输入一串数字,将其转化成中文例如:12300000输出:壹仟贰佰叁拾万圆例如:123456789输出:壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖圆例如:-123输出:[负]壹佰贰拾叁圆我的代码:var num = 12000000var arr = [];var zf = 0;if(num<0){ zf = 1; num = num*-1;}...原创 2019-10-17 21:42:55 · 384 阅读 · 0 评论 -
力扣一日一练(20)——等价多米诺骨牌对的数量
题目:等价多米诺骨牌对的数量给你一个由一些多米诺骨牌组成的列表dominoes。如果其中某一张多米诺骨牌可以通过旋转0度或180度得到另一张多米诺骨牌,我们就认为这两张牌是等价的。形式上,dominoes[i] = [a, b]和dominoes[j] = [c, d]等价的前提是a==c且b==d,或是a==d且b==c。在0 <= i <...原创 2019-07-23 19:26:12 · 260 阅读 · 0 评论 -
力扣一日一练(10)——盛最多水的容器
题目:盛最多水的容器给定n个非负整数a1,a2,...,an,每个数代表坐标中的一个点(i,ai) 。在坐标内画n条垂直线,垂直线i的两个端点分别为(i,ai) 和 (i, 0)。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且n的值至少为 2。示例:输入: [1,8,6,2,5,4,8,3,7]输出: ...原创 2019-04-28 18:48:23 · 242 阅读 · 0 评论 -
力扣一日一练(12)——相同的树
题目:相同的树给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例:示例1:输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3]输出: true示例 2:...原创 2019-05-02 12:56:34 · 223 阅读 · 0 评论 -
力扣一日一练(9)——打家劫舍
题目:打家劫舍你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例:示例 1:输入: [1,2,3,1]输出: 4解释: 偷窃 1 号房屋 ...原创 2019-04-27 18:05:36 · 221 阅读 · 0 评论 -
力扣一日一练(5)——最长公共前缀
题目:最长公共前缀编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。示例:示例1:输入: ["flower","flow","flight"]输出: "fl"示例2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明:所有输入只包含小写字母a-z。使用语...原创 2019-04-22 18:34:41 · 248 阅读 · 0 评论 -
算法竞赛入门经典(一)---数组和字符串
目录数组和字符串逆序输出数组的输入与输出开灯问题蛇形填数斜线填数一字填数竖式问题输入一些数,统计个数将数值存储到动态数组中输入一些数,输出最大值,最小值数组和字符串逆序输出#include<stdio.h>#define max 105int a[max];int main(){ int x, n = 0; ...原创 2018-11-28 21:11:02 · 171 阅读 · 0 评论 -
C语言算法竞赛入门(二)---数组元素移动 、排序问题 、猴子选大王问题
数组元素移动【问题描述】调整输入数组A[0..n],将其分为两部分,左边所有元素为奇数,右边所有元素为偶数【输入形式】a0,b1,b2,a1,a2,b3,a3,a4【输出形式】a0,a1,a2,a3,a4,b1,b2,b3【样例输入】1,2,33,8,5【样例输出】1,33,5,2,8代码:#include<stdio.h>int main(){ int ...原创 2018-12-08 20:01:39 · 1836 阅读 · 0 评论 -
人工智能--遗传算法(旅行商问题)
人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,主要包括计算机实现智能的原理、制造类似于人脑智能的计算机,使计算机能实现更高层次的应用。人工智能将涉及到计算机科学、心理学、哲学和语言学等学科。可以说几乎是自然科学和社会科学的所有学科,其范围已远远超出了计算机科学的范畴,人工智能与思维科学的关系是实践和理论的关系,人工智能是处于思维科学的技术应用层次,是它...原创 2019-01-14 15:46:38 · 9999 阅读 · 3 评论 -
力扣一日一练(8)——无重复字符的最长字符串
题目:无重复字符的最长字串给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例:示例1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew...原创 2019-04-26 17:05:12 · 192 阅读 · 0 评论 -
力扣一日两练(4)——第三大的数,两地调度
算法时间频度:一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。并且一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法中的语句执行次数称为语句频度或时间频度。记为T(n)。算法时间复杂度:一般情况下,算法中基...原创 2019-04-21 14:22:18 · 275 阅读 · 0 评论 -
力扣一日一练(1)——两数之和
题目:两数之和给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, ...原创 2019-04-19 17:15:58 · 216 阅读 · 0 评论 -
力扣一日一练(6)——x的平方根
题目:x的平方根实现int sqrt(int x)函数。计算并返回x的平方根,其中x是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例:示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。使用语言JavaSc...原创 2019-04-24 15:32:58 · 193 阅读 · 0 评论 -
力扣一日一练(2)——买卖股票最佳时机
题目:买卖股票最佳时机给定一个数组,它的第i个元素是一支给定股票第i天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6...原创 2019-04-20 10:19:03 · 319 阅读 · 0 评论 -
力扣一日一练(19)——最后一块石头的重量
题目:最后一块石头的重量有一堆石头,每块石头的重量都是正整数。每一回合,从中选出两块最重的石头,然后将它们一起粉碎。假设石头的重量分别为x 和y,且x <= y。那么粉碎的可能结果如下:如果x == y,那么两块石头都会被完全粉碎;如果x != y,那么重量为x的石头将会完全粉碎,而重量为y的石头新重量为y-x。最后,最多只会剩下一块石头。返回此石头的重量...原创 2019-07-05 15:07:14 · 255 阅读 · 0 评论 -
力扣一日一练(15)——买卖股票的最佳时机 II
题目:买卖股票的最佳时机 II给定一个数组,它的第i个元素是一支给定股票第i天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在...原创 2019-06-04 22:00:04 · 180 阅读 · 0 评论 -
力扣一日一练(18)——复写零
题目:复习零给你一个长度固定的整数数组arr,请你将该数组中出现的每个零都复写一遍,并将其余的元素向右平移。注意:请不要在超过该数组长度的位置写入元素。要求:请对输入的数组就地进行上述修改,不要从函数返回任何东西。提示:示例 1:输入:[1,0,2,3,0,4,5,0]输出:null解释:调用函数后,输入的数组将被修改为:[1,0,0,2,3,0,0,4]...原创 2019-06-16 12:31:19 · 267 阅读 · 0 评论