- 博客(43)
- 资源 (1)
- 收藏
- 关注
原创 C++手撸JVM——2号机
本地方法开发真的是太难了。比如下面这个简单的字符串拼接int x=1;String a="abc";String b=a+x;JVM就执行了1200多条指令!如果出了问题(实际上真的出了问题)排查起来非常困难。其他如反射获取对象类名也是一样。真是开发5分钟,排错两小时!而且由于前面开发图进度,给自己挖了不少坑,要花费不少时间去前面填坑!不过好在最后还是凭着耐心,在前几...
2019-10-10 19:46:31 868
原创 2.俄罗斯方块(循环,分支)
又开了一个分组,里面才一篇写数独游戏的文章,怪空的。再写一个吧。写什么好呢,我想起大一写的第一个游戏:俄罗斯方块。都是条件分支和循环,没有什么算法知识,比较适合再水一篇 一、俄罗斯方块的初始化1、头文件包:#include <windows.h>#include <ctime>#include <conio.h>#includ...
2018-09-07 22:55:57 523
原创 1.数独游戏(生成题目解唯一)
前几天在玩数独游戏的时候,产生了一个大胆的想法:数独app上的题目都是现成的,干脆自己写一个可以随机生成数独的程序算了一、需求提出:1.随机生成数独题目,要求该题目有解(有一个解最好);2.当填数违反数独操作(填到题目原本的数字去了,填数违规等)时,禁止操作,弹出提示;3.当81格都填满时,判断对错;二、需求分析总:需求2,3相对简单,尤其是...
2018-09-06 16:40:53 23708 8
原创 【简易JVM开发日志4】classDecode(3)解析方法,字段表属性
【总目录/源代码】:https://blog.csdn.net/qq_40636117/article/details/94383044【上一篇】:https://blog.csdn.net/qq_40636117/article/details/94654292解析完属性池后,下一步就是去实现jvm的RunTimeDataArea,也就是运行数据区了。不过要想让jvm运行起来,还得...
2019-07-12 16:22:23 416
原创 【简易JVM开发日志3】classDecode(2)解析属性池
【总目录/源代码】:https://blog.csdn.net/qq_40636117/article/details/94383044【上一篇】:https://blog.csdn.net/qq_40636117/article/details/94415960【下一篇】:https://blog.csdn.net/qq_40636117/article/details/95618443...
2019-07-05 00:30:04 383
原创 【简易JVM开发日志2】classDecode(1)解析基本信息与常量池
【总目录/源代码】:https://blog.csdn.net/qq_40636117/article/details/94383044【上一篇】:https://blog.csdn.net/qq_40636117/article/details/94394949【下一篇】:https://blog.csdn.net/qq_40636117/article/details/94654292...
2019-07-02 12:31:03 356
原创 【简易JVM开发日志1】classLoader
【总目录/源代码】:https://blog.csdn.net/qq_40636117/article/details/94383044【下一篇】:https://blog.csdn.net/qq_40636117/article/details/94415960我们知道,哪怕运行像输出“Hello World”这样简单的程序,java虚拟机都要先加载相关的类。加载类文件需要通过类路...
2019-07-02 12:30:45 580
原创 【进行中,随时弃坑】简易JVM的C++实现
源码地址:https://pan.baidu.com/s/1Jj1H5uL3RLDzZARxFD0Bfw提取码:68x72019.07.04更新一、想法:暑假闲着也是闲着,不如做一些有趣的事情,所以我决定做一个简易的java虚拟机。其实真的是心血来潮,因为几天前我在找关于java虚拟机学习资料的时候无意间发现了一本书——《自己动手写java虚拟机》。哇,手写jvm,这也太酷了...
2019-07-02 12:30:22 1315
原创 3.从中序与后序遍历序列构造二叉树(leetcode 106)
根据一棵树的中序遍历与后序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出中序遍历 inorder =[9,3,15,20,7]后序遍历 postorder = [9,15,7,20,3]返回如下的二叉树: 3 / \ 9 20 / \ 15 7思路:分治算法。后序遍历嘛,那么后序遍历数组postord...
2019-05-25 20:40:36 109
原创 CPU模型笔记
一、部件1、单元(1).ALU(Arithumetic and Logic Unit):算数逻辑单元(运算器),进行多组算数和逻辑运算(2).CU(Control Unit):控制单元,执行计算机指令2、寄存器(1)ACC(Accumulator)累加寄存器(属于通用寄存器)(2)PSWR(Program Status Word Register):状...
2019-05-19 13:54:51 3136
原创 14.近似串匹配问题
问题:错误拼写检查,将字符串T修改为P,并且要求改动次数最少例子:求出将"hsppay"(T)改成”happy“(P)的最少改动次数分析:将字符串T改成P,有以下几种操作:(1)修改:将字符串T的某个字符修改了(2)删除:T比P要长,如果改成P,某些字符必须删除(3)增加:T比P要短,如果改成P,要增加某些字符通过上面三波操作,绝对能把T改成P,并且有很多种方法...
2019-05-08 13:38:31 4970
原创 紫书题解4.正方体涂色 (UVa 253 模拟)
题目链接:https://vjudge.net/problem/UVA-253大意:给定两个六面涂有红,蓝,绿的正方体,问是否能够通过旋转,将一个正方体转化为另一个正方体弱鸡翻译,当英语练习,仅供参考 我们有一个用来给正方体上色的机器。它提供三种不同的颜色:蓝,红和绿。每一面都会涂上其中一种颜色。正方体的每一面的编号如图Figure 1所示 由于正方体有6面,在给每...
2019-05-04 21:09:16 399
原创 紫书题解3.象棋 (UVa 1589 综合) 附显示棋盘
原题见https://vjudge.net/problem/UVA-1589大意是判断黑将军是否被红棋(红帅,红车,红马,红炮)将死。注意可以将帅吃,如果黑将和红帅正对面并且中间没有其他棋子,算黑棋胜利。代码没有AC,但是udebug里面的1000多个数据全部通过。找不到问题,也不知道怎么回事,我就当格式出了错误吧。(码了几天,估计20个小时了,还是不行。。。)思路:为了方便判...
2019-05-01 23:26:28 501 2
原创 紫书题解2.信息解码 (UVa213 输入输出格式)
紫书例题:Message Decoding(UVa 213)1.题目:考虑下面的01串序列:0,00,01,10,000,001,010,011,100,101,110,0000,001,。。。,1101,1110,00000,。。。首先是长度为1的串,然后是长度为2的串,依次类推。如果看成二进制,相同长度的后一个串等于前一个串加1,注意上述序列中不存在全为1的串。你的任务是编写一...
2019-04-26 21:22:20 408
原创 13.背包问题(完全背包,0/1背包)
上算法课的时候学到了背包问题。嗯,又是熟悉的配方,今天来复习一下。一、完全背包问题:问题:有N种物品和一个容量为V的背包,每种物品都有无限件可用。第i种物品的体积是c,价值是w。求解将哪些物品装入背包可使这些物品的体积总和不超过背包容量,且价值总和最大。和之前做过的LeetCode322,零钱兑换(https://blog.csdn.net/qq_40636117/ar...
2019-04-17 15:29:05 508
原创 2.分治法求解棋盘问题
一、问题:对于一个 2^k * 2^k (k>=0) 的棋盘,恰有一个方格(下称为特殊方格)与其他不同,请用如下4种L型骨牌将除了特殊方格以外的格子覆盖,骨牌间不可重复覆盖例题: 答案---------------- ----------------| | | | | | 1 | 1 | 2 | 2 | ...
2019-04-15 15:47:56 1873 1
原创 KMP算法
问题:在信息检索中查找某段信息的位置例如:在S=“ababaababcb”中查找字符串T=“ababc”的位置(S称为主串,T称为模板)一、KMP的思想:如果按照暴力算法来操作的话,要是某个字符T[j]和主串不匹配,就得从头再来了。要是T[j]前有两个字符串一毛一样(比如下图),还从头再来,不是血亏啊?序号 0 1 2 3 4S(主串) ...
2019-04-13 18:41:36 392
原创 1.减治法求最大子序和
给定n个整数(可能有负)的序列,求最大子段和例如序列(-20,11,-4,13,-5,-2)最大子段和为20(子段为{11,-4,13})思路:这道题目的难点在于子段起点和终点不确定:想想吧,如果题目规定必须包含a[0],那还不好求吗?只要设置两个变量a,b,a负责记录前最大值,b负责从a[0]累加到a[n],如果b>a,则令a=b,只需扫描一趟就能求解出来。...
2019-04-13 15:48:05 629
原创 第十届蓝桥杯C/C++B组省赛
本萌新第一次参加蓝桥杯比赛,感觉题目难度还没以前写的难,简直美滋滋。后来看了其他大佬写的解题报告,发现是自己图样图森破,几乎所有的坑都被踩了一遍。第一道题是篮球教练选出几个球员充当1~5号位。每个球员的每号位都给出了相应的评分。看起来好像把每号位分值最大的加起来就行了吧?我真的这么做了,这么做了,做了,了。。。现在想想当然不是啊!!有的球员1号位最强,2号位也是最强,能直接把...
2019-03-30 18:18:32 496 2
原创 3.随机迷宫生成演示程序
假期写了个基于随机迷宫的游戏,学习了相关随机迷宫的生成算法。其他算法都好理解,也很容易写出来。但就是随机Prim,怎么都写不对,生成的迷宫乱七八糟的,急死人了没办法只好看别人的,但是又死活看不明白注释,调试又不太直观,只好魔改程序,让程序显示构造迷宫过程中各个格子的状态。才弄懂明白,原来是随机广度优先啊。。。于是机制的我觉得水上一波贴上演示程序代码/*************...
2019-01-18 22:57:55 559
原创 12.零钱兑换 II
给定不同面额的硬币和一个总金额。写出函数来计算可以凑成总金额的硬币组合数。假设每一种面额的硬币有无限个。注意:你可以假设0 <= amount (总金额) <= 5000 1 <= coin (硬币面额)<= 5000 硬币种类不超过500种 结果符合32位符号整数示例 1:输入: amount = 5, coins = [1, 2, 5]输出...
2018-12-23 00:31:06 1657 1
原创 11.目标和
给定一个非负整数数组,a1, a2, ..., an, 和一个目标数,S。现在你有两个符号 + 和 -。对于数组中的任意一个整数,你都可以从 + 或 -中选择一个符号添加在前面。返回可以使最终数组和为目标数 S 的所有添加符号的方法数。示例 1:输入: nums: [1, 1, 1, 1, 1], S: 3输出: 5解释: -1+1+1+1+1 = 3+1-1+1+1+1 ...
2018-12-18 14:51:04 336 1
原创 10.打家劫舍 III
leetcode337 中等在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫,房屋将自动报警。计算在不触动警报的情况下,小偷一晚能够盗取的最高金额。...
2018-12-14 22:39:01 372
原创 1.中缀计算器
要求:编写一个程序,由于求四则运算中缀表达式的值。 所谓“四则运算中缀表达式”,就是四则混合运算算式,比如9+7*(3-2),3*6-(4+8),由于运算符号放在运算数值中间,所以被称为中缀表达式。 一、思路:输入的字符串先用字符数组equ[1000]存放起来。扫描下去直到equ[n]=NULL为止很自然,我们要解决如下两个大问题: 1.正确读取字符串里面的数字...
2018-10-08 22:23:18 738 1
原创 紫书题解1.下落的树叶(UVa 699 深广度)
紫书例题:The Falling Leaves,(UVa 699)给一颗二叉树,每个结点都有一个水平位置:左子结点在它左边1个单位,右子结点在右边一个单位,从左向右输出每个水平位置的所有结点权值之和。如样例所示,从左到右的3个位置的权和分别为7,11,3。按照递归(先序)输入,用-1表示空树。 5 ...
2018-10-05 21:08:30 392
原创 9.最小路径和
给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例:输入:[ [1,3,1], [1,5,1], [4,2,1]]输出: 7解释: 因为路径 1→3→1→1→1 的总和最小。 思路:要想知道最小路径,不把网格所有点都走一次是不可能知道的,单凭是右点大数值还是...
2018-09-28 00:44:43 238
原创 8.最长上升子序列
给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。说明:可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。 你算法的时间复杂度应该为 O(n^2) 。 思路:把这个数组nums拆分成长度1,2,3 。。。n 的子序列,...
2018-09-17 16:44:18 163
原创 7.整数拆分
给定一个正整数n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。示例 1:输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1。示例2:输入: 10输出: 36解释: 10 = 3 + 3 + 4, 3 ×3 ×4 = 36。说明:你可以假设n不小于 2 且不大于 58。这和《零钱兑...
2018-09-13 00:13:07 1263
原创 6.比特位计数
给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。示例 1:输入: 2输出: [0,1,1]示例 2:输入: 5输出: [0,1,1,2,1,2]进阶:给出时间复杂度为O(n*sizeof(integer))的解答非常容易。但你可以在线性时间O(n)内用一趟扫描做到吗? 要求算法的空...
2018-09-12 19:37:52 276
原创 5.不同的二叉搜索树
给定一个整数 n,求以 1 ... n 为节点组成的二叉搜索树有多少种?示例:输入: 3输出: 5解释:给定 n = 3, 一共有 5 种不同结构的二叉搜索树: 1 3 3 2 1 \ / / / \ \ 3 2 1 1 3 2 ...
2018-09-10 19:03:47 727
原创 2.反转链表
反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL 一、思路:利用三个节点互换达到反转链表的目的:新建节点p,q.原链表头节点head记为h,令p=h ,q=h.next,如下图;1、翻转节点1、2h q 1->2->...
2018-09-10 10:35:21 257
原创 2.等差数列划分
如果一个数列至少有三个元素,并且任意两个相邻元素之差相同,则称该数列为等差数列。例如,以下数列为等差数列:1, 3, 5, 7, 97, 7, 7, 73, -1, -5, -9以下数列不是等差数列。1, 1, 2, 5, 7 数组 A 包含 N 个数,且索引从0开始。数组 A 的一个子数组划分为数组 (P, Q),P 与 Q 是整数且满足 0<=P&l...
2018-08-22 19:26:26 566
原创 4.使用最小花费爬楼梯
数组的每个索引做为一个阶梯,第 i个阶梯对应着一个非负数的体力花费值 cost[i](索引从0开始)。每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或者爬两个阶梯。您需要找到达到楼层顶部的最低花费。在开始时,你可以选择从索引为 0 或 1 的元素作为初始阶梯。示例 1:输入: cost = [10, 15, 20]输出: 15解释: 最低花费是从c...
2018-08-07 10:45:28 1414
原创 1.删除链表的倒数第N个节点
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗? 思路:开始我想的是扫描两遍链表,一遍求链表长度,...
2018-08-06 19:52:06 181
原创 3.二叉树的右视图
给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。示例:输入: [1,2,3,null,5,null,4]输出: [1, 3, 4]解释: 1 <--- / \2 3 <--- \ \ 5 4 <--- 思路:设置...
2018-08-05 08:33:36 481
原创 3.打家劫舍
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [1,2,3,1]输出: 4解释: 偷窃 1 号房屋 (金额 = 1) ,然后偷窃...
2018-08-04 22:15:37 249
原创 2.王、后传说
问题描述 地球人都知道,在国际象棋中,后如同太阳,光芒四射,威风八面,它能控制横、坚、斜线位置。 看过清宫戏的中国人都知道,后宫乃步步惊心的险恶之地。各皇后都有自己的势力范围,但也总能找到相安无事的办法。 所有中国人都知道,皇权神圣,伴君如伴虎,触龙颜者死...... 现在有一个n*n的皇宫,国王占据他所在位置及周围的共9个格子,这些格子皇后不能使用(如果国王在王宫的边上,占用的...
2018-07-19 21:24:31 714 1
原创 2.零钱兑换
给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回-1。示例1:输入: coins = [1, 2, 5] amount = 11输出: 3 解释: 11 = 5 + 5 + 1示例 2:输入: coins = [2], amount = 3输出: -1说明:...
2018-07-06 16:35:59 3677
原创 1.数字三角形及动态规划
问题描述 (图3.1-1)示出了一个数字三角形。 请编一个程序计算从顶至底的某处的一条路 径,使该路径所经过的数字的总和最大。 ●每一步可沿左斜线向下或右斜线向下走; ●1<三角形行数≤100; ●三角形中的数字为整数0,1,…99; . (图3.1-1)输入格式 文件中首先读到的是三角形的行数。 接下来描述整个三角形输出格式 最大总和(整数)样例输入573 88 1 02 7...
2018-07-06 15:23:30 309
原创 1.岛屿最大面积
给定一个包含了一些 0 和 1的非空二维数组 grid , 一个 岛屿 是由四个方向 (水平或垂直) 的 1 (代表土地) 构成的组合。你可以假设二维矩阵的四个边缘都被水包围着。找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为0。)示例 1:[[0,0,1,0,0,0,0,1,0,0,0,0,0], [0,0,0,0,0,0,0,1,1,1,0,0,0], [0,...
2018-07-06 14:07:16 514
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人