自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 收藏
  • 关注

转载 结构体内存分配-内存对齐

关于内存对齐一:1.什么是内存对齐假设我们同时声明两个变量:char a;short b;用&(取地址符号)观察变量a,b的地址的话,我们会发现(以16位CPU为例):如果a的地址是0x0000,那么b的地址将会是0x0002或者是0x0004。那么就出现这样一个问题:0x0001这个地址没有被使用,那它干什么去了?答案就是它确实没被使用。因为CPU每次...

2018-11-30 16:47:34 241

转载 matlab 数组

A= [1, 2 ,3 ,4, 5; 1, 2, 3, 4, 5];a=sum(A)  %对整个矩阵按列求和>>a= [2 4 6 8 10]sum(A(1:t,:),1)    %对矩阵前1到t行按列求和b=sum(A,2) %对整个矩阵按行求和>>b=[15;15];c=sum(A(:)) %整个矩阵整体求和>>c =30d=...

2018-11-07 14:45:37 380

原创 vs2017创建c++项目,引用静态库

 图中编译平台是64位的,如果修改编译平台,需要统一重新设置,但是步骤完全一样。    

2018-10-31 23:04:53 1414

转载 Visual studio2017新建c语言项目

最近微软更新最新vs2017吧win32控制台模板给删掉了,创建新的c语言项目也随之改变了,我这里就介绍一下怎么新建新的c语言空项目方法/步骤 1 新建VS项目 2 选取Visual C++,创建一个空项目 3 创建好后,选择项目属性,如图所示,点进去 4 点常规,修改字符集为Unicode 5 修改链接...

2018-10-30 09:42:39 1172 1

转载 Visual Studio 修改项目名称

1.先修改工程名/解决方案名 举例,原先的工程名为AAA   想要改成BBB:1.找到工程/解决方案所在的文件夹(已工程名/解决方案名命名,即AAA)2.打开该文件夹,有一个AAA.sln   将其重命名为BBB.sln   用记事本方式打开该sln文档,点替换,将所有AAA替换为BBB,保存退出.3.AAA文件夹下还有一个AAA文件夹,打开里面有一个AAA.vcpro...

2018-10-30 09:28:41 1478

原创 复杂链表的复制

输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)/*public class RandomListNode { int label; RandomListNode next = null; RandomLis...

2018-07-02 17:20:17 125

原创 二叉树中和为某一值的路径

输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。import java.util.ArrayList;/**public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; ...

2018-07-02 11:15:25 133

原创 栈的压入、弹出序列

输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的public boolean IsPopOrder(int [] pushA,int [] popA) ...

2018-06-28 10:55:10 115

原创 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。

写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。       //两个数的和可以分解为(两数异或)与(两数按位与左移一位)的和,这可以是迭代。        //1. 两数异或  是将两个数中不同的二进制位直接相加的结果,        //2. 两数按位与  则是得到进位的结果,        //3. 进位左移一位和异或结果,重复1,2。        //因此在...

2018-06-27 17:39:17 1343

原创 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。

定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。方法一: 使用两个栈,一个完成数据的出栈入栈操作,另一个辅助栈存储每次操作之后得到的最小值。import java.util.Stack;public class Solution {    Stack stack1 = new Stack();    Stack stack2 = new Stack(); //辅助栈stack...

2018-06-26 21:31:26 471

原创 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。

输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。/*public class ListNode {    int val;    ListNode next = null;    ListNode(int val) {        this.val = val;    }}*/方法一: 递归版本public class Solution {    pu...

2018-06-26 16:13:15 720

原创 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。public class Solution {    public void reOrderArray(int [] array) {        if(array==null||array.length ==0)      ...

2018-06-26 12:06:29 145

原创 输入一个链表,从尾到头打印链表每个节点的值。

输入一个链表,从尾到头打印链表每个节点的值。/***    public class ListNode {*        int val;*        ListNode next = null;*        ListNode(int val) {*            this.val = val;*        }*    }*/import java.util.ArrayList...

2018-06-26 11:06:18 117

原创 用两个栈来实现一个队列

用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型import java.util.Stack;public class Solution {    Stack<Integer> stack1 = new Stack<Integer>();//栈1用于push    Stack<Integer> stack2 = new Stac...

2018-06-26 11:05:09 87

原创 JDBC PreparedStatement

为什么使用PreaparedStatement:1.使用statement需要通过字符串,拼写出对应的数据库命令2. 使用PreparedStatement可以有效防止sql注入,sql注入攻击是利用某些系统没有对用户输入的数据进行充分的检查,而在用户输入数据中注入非法的SQL语句段或命令,从而利用系统的SQL引擎完成恶意行为的做法,对于Java而言,只要使用PreparedStatement取代...

2018-05-29 11:30:29 177

原创 JDBC连接数据库

添加数据库驱动到程序中:1. Java.sql.Driver是数据库厂商必须实现的接口,加入mysql的驱动,解压mysql-connector-java-.zip2. 在当前项目文件夹下新建lib目录3. 将解压文件夹下的mysql-connector-java-.jar复制到lib目录下4. 右键build-path,add to buildpath 加到类路径下.s但是通常,程序中不需要直接...

2018-05-29 09:29:14 108

原创 关于使用EmguCV出现 “无法加载 DLL“cvextern”: 找不到指定的程序” 的解决方法

网上的复制x86中的库到项目debug文件夹下,并不管用,试试配置环境变量。(楼主机子为windows 7  64位系统,IDE为VS2017)开始配置环境变量。在用户变量里新建PATH,里面填上安装或解压后的Emgu目录下的bin和libs里的x86和x64(emgu版本emgucv-pro 3.3.0.2824),路径之间分号隔开。配置完成后重启电脑,就没有报错了。...

2018-05-16 21:08:59 2492 2

原创 Java 多线程

进程是一个程序的一次执行过程,是动态的。线程是进程的一个执行路径,当进程需要执行多项任务,就需要多线程。Java程序的线程至少有main线程和垃圾回收线程。多线程的创建:一 . 继承java.lang.Thread(这样就不能继承其他的类,单继承),重写run(),方法体就是线程执行的任务。 创建该类对象,调用start()启动该线程并调用相应的run()。 class Test...

2018-05-11 20:15:31 131

原创 Java 对象序列化

对象的序列化就是对引用数据类型的IO传输,将内存中的对象转换成二进制流,进而存储在硬盘文件中或者进行网络传输,这就是序列化;FileOutputStream ---> ObjectOutputStream---->writeObject(Object,序列化的类)---->flush()将序列化的对象提取出来还原成对象,就是反序列化。FileInputStream---->...

2018-05-11 11:03:51 102

原创 Java IO流

public static void main(String[] args) throws IOException{       File  file = new File("hello.txt");        System.out.println(file.getName());       System.out.println(file.getParent());       System...

2018-05-10 23:06:05 111

原创 java TreeSet自然排序和定制排序

import java.lang.Comparable;import java.util.Comparator;import java.util.TreeSet;//TreeSet自然排序与定制排序,//1. 自然排序需要类实现Comparable接口,重写compareTo(),由于Set的不可重复性,要保证具有相同属性的元素不被重复添加,就需 要重写添加进Set的元素类的equals()和ha...

2018-05-10 15:05:43 356

原创 Java Map接口

Map接口: -----HashMap: 主要的Map实现类;                  -----LinkedHashMap: 链表维护                   -----TreeMap: 按照添加进Map中的元素的key的指定属性进行排序                                         (同TreeSet,自然排序与定制排序,不过是针对key...

2018-05-10 14:55:38 128

原创 Java集合

Java集合分为Collection和Map两种体系Collection接口:  Set接口 : 元素无序,不可重复的集合------数学意义上的集合;                                 Set中常用的方法,都是Collection中的                                 主要实现类:HashSet(主要实现类), LinkedHashSe...

2018-05-09 22:08:48 96

原创 java 异常

java语言中,在程序执行中发生的不正常情况叫做异常(开发的语法错误和逻辑错误不是异常);异常分为两类:Error和Exception;Error:Java虚拟机无法解决的严重问题,如JVM系统内部错误,资源耗尽等严重错误,一般不编写          针对性的代码进行处理;Exception:其他因为编程错误或偶然的外在因素导致的一般性问题,可以使用针对性代码进行处理,             ...

2018-05-09 17:30:32 96

原创 java内部类

定义在类的内部的类,内部类分为: 成员内部类(声明在类内部,方法外)和局部内部类(声明在方法内)成员内部类具有成员的特点(四个修饰符,普通类只有public和default;                                             static修饰,普通类不能使用static),也具有类的特点。成员内部类对象的创建:class Person{ String name...

2018-05-09 11:41:00 80

原创 抽象java

abstract 修饰类或者方法,不能用来修饰属性,构造器,不能与private,final,static同用修饰类:抽象类,不可被实例化,  抽象类是成员变量,成员方法,抽象方法,构造器的集合。             抽象类有构造器(凡是类都有构造器,接口没有构造器),天生被继承,             抽象方法所在的类必须是抽象类,但是抽象类可以没有抽象方法。         修饰方法:抽...

2018-05-09 10:47:09 130

原创 static

static 可以修饰除了构造器以外的所有类成员:属性,成员方法,代码块,内部类静态属性(类变量),对象共享的变量,存储在静态域,随着类的加载而加载,类.变量;静态方法(类方法):随着类的加载而加载,类.方法, 实例变量(也就是非静态变量)是随着对象的创建而被加载,因此类变量,类方法的加载  都比实例变量,成员方法要早,这也解释了为什么静态方法不能直接调用非静态变量和非静态方法  因为他们还没有被...

2018-05-08 16:38:26 108

原创 操作给定的二叉树,将其变换为源二叉树的镜像。

输入描述:二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5思路: 对于每个根节点,交换左右子节点,因此使用递归,交换了左右子节...

2018-05-04 10:50:50 199

原创 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)

/**public class TreeNode {    int val = 0;    TreeNode left = null;    TreeNode right = null;    public TreeNode(int val) {        this.val = val;    }}*/public class Solution {    public boolean HasS...

2018-05-04 10:35:01 243

原创 反转链表(java)

方法一: 使用栈,出栈的时候一次指向下一个栈顶的节点/*public class ListNode {    int val;    ListNode next = null;    ListNode(int val) {        this.val = val;    }}*/import java.util.Stack;public class Solution {    public L...

2018-05-03 16:06:30 97

原创 输入一个链表,输出该链表中倒数第k个结点。

方法一:先遍历一遍链表,得到节点数目count,再取第count-k个节点即可。/*耗时24mspublic class ListNode {    int val;    ListNode next = null;    ListNode(int val) {        this.val = val;    }}*/public class Solution {    public List...

2018-05-03 15:18:14 314

原创 实现一个函数来调整该数组中数字的顺序

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分。前后两个指针,如果前偶后奇,就交换。这样只能完成前面偶数,后面奇数,可能会改变偶数与偶数,奇数与奇数相对位置public class Solution {    public void reOrderArray(int [] array) {        if(array=...

2018-05-03 15:01:20 370

原创 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。(Java)

方法一:选择移动标志位,而不是移动原数,因为如果该数是一个负数,向右移动的时候,高位会自动补充1;public class Solution {    public int NumberOf1(int n) {        int count =0;         int flag =1;        while(flag !=0)        {                     ...

2018-05-02 16:44:24 175

原创 Java 实现 feibonacci数列

方法一: 递归实现,代码简洁,但是效率较低public class Solution {    public int Fibonacci(int n) {      if(n<1)      {          return 0;      }      if( n <=2)      {          return 1;      }           return Fibo...

2018-05-02 15:10:40 517

原创 旋转数组最小值的查找(二分法变形)

二分法变形,旋转数组的组成特点是,前面递增(不是严格的递增),后面递增(不是严格递增),但是前面部分大于等于后面部分。因此最小值就是两个部分的分界点。查询时,从中间开始查询,将中间值与前部分的最小值,后部分的最大值比较。倘若中间值大于前部分最小值,那么中间值就位于前部分,那么前部分的指针就要移动到中间值;倘若中间值小于后部分的最大值,那么中间值就位于后部分,那么后部分的指针就要移动到中间值。直到前...

2018-05-02 15:03:48 347

原创 Java 替换字符串空格

思路: 将字符串中空格" "替换为"%20",就要修改字符串,修改以后长度改变,因此首先要查找空格数目,确定修改后字符串长度;如果从前向后遍历,遇到空格,替换,将会覆盖后面的字符,为了不覆盖只能替换一次,空格之后所有字符都要向后移动一次,太耗时间;如果从后向前遍历,使用两个索引,一个索引指向新的长度末端,一个索引指向原长度末端,非空格的复制过去,空格的替换,这样每次复制的只有两个空格之间的部分。关...

2018-04-28 16:38:53 437

原创 Java 倒着打印链表

import java.util.ArrayList;import java.util.Collections;public class Solution {    public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {         ArrayList<Integer> list = ...

2018-04-28 16:23:42 153

原创 Java 二维数组查找

class ArrayIndex{ public static void main(String[] args) { int[][] arr  = {{1,2,3,4,5},{2,6,8,9,10},{4,8,12,13,15},{7,9,15,20,21}}; ArrayIndex arrIndex = new ArrayIndex(); boolean b1 = arrIndex.Arr...

2018-04-28 16:20:44 145

原创 Java 重构二叉树

 重构二叉树的思路: 前序遍历(根,左,右)的第一个数必定是根节点                    中序遍历(左,根,右)的根节点左边是左子树,右边是右子树因此,在前序遍历数组中得出根节点,然后在中序遍历数组中找到根节点,然后将左子树与右子树的前序遍历数组与中序遍历数组得出,分别返回左右子树的根节点,赋给根节点的左右结点依次迭代直到最后一个叶子(左右结点都为空)class TreeNode{...

2018-04-28 16:15:10 263

原创 Java单例模式

//饿汉式,线程安全class Singleton1{ private Singleton1() { } private static Singleton s = new Singleton(); public static Singleton getInstance(){ return s; }}//懒汉式,多线程可能创建多个实例class Singleton2{  private Sin...

2018-04-27 15:29:15 88

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除