每周一练
第一周
一. 关键代码:
1.斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...
数列第一项和第二项是1, 从第三项开始,每一项都等于前两项之和。

本题的详细要求如下:
1)实现计算斐波那契数列第n项值的方法。
定义静态方法f(int n), 参数n是数列的项数,返回值是第n项的值,
例如: f(1) 的值是1, f(6)的值是8。
2)验证当n比较大时候,相邻两项的比值接近黄金分割比值0.618,验算f(45)/f(46)的值大约是0.618。

2. 实现删除数组中某一元素的算法

本题的详细要求如下:
1) 当给定一个数组和该数组中的某一元素的位置时,利用算法将该数组中的该位置的元素删除。如: 有一个数组,其元素内容为 {2,3,4,5,6},当删除位置为1的元素后,该数组的元素内容更改为{2,4,5,6}。
2) 上述描述中的算法,要求通过一个方法来实现,该方法的声明如下所示: int[] remove(int[] ary, int index){}

上述方法声明中:
参数ary引用的是原数组;
参数index表示想要删除的元素的位置;
返回值为删除掉指定位置元素后的数组。

每周一练第一周
一. 关键代码:
1. 实现循环链表数据存储结构,如有序数据序列[2,3,4,6]
在如上有序数据序列[2,3,4,6]中,插入方法是将数据插入到链表的指定位置,比如在位置2处插入元素8,就会得到数据序列[2,3,8,4,6]
链表结构中的每个节点是一个对象,每个对象有两个属性,一个属性是引用类型,用来引用下一个元素,另外一个属性是int类型,用来保存被存储的数据。head是节点类型的引用变量引用第一个存储数据的节点。
本题的详细要求如下:
1) 定义一个名为Node的类描述链表节点对象的特征,包含两个属性一个是Node next用于引用下一个节点, 另一个是int data用于存储节点数据。 并在该类中定义带参数的构造器, 使用int data作为参数,初始化data属性,并且将next属性引用当前对象自身。
2) 在Node类中定义一个静态方法static Node insert(Node head,int index, int data),该方法用于将数据data插入到head引用的链表结构的index位置,并返回当前链表结构。方法过程分为查找对应位置节点和插入新节点两个步骤,详细描述如下:
A. 将head引用的节点作为当前节点node;
B.定义一个变量i,默认值为0,表示当前节点位置;
C.若index值为0,则说明是从链表的第一个节点位置插入新元素。执行D步骤。若不是,则执行I步骤;
D. 创建新节点newNode;
E. 插入新的节点:将newNode 的next属性引用头节点head。然后找到最后一个节点。
F. 从node节点开始查找下一个节点next;
G. 如果next节点的下一个节点是头节点head,说明该节点是链表最后一个节点,那么将该节点next属性引用newNode完成插入工作。
H.返回newNode作为该链表新的头节点。
I. 循环判断查看i+1的值是否等于index,若等于则说明找到待插入元素的上一个元素了。否则对i++然后让node的next节点作为当前节点node.直到找到该元素为止。若过程中发现node的next节点是head,则说明到达链表末尾仍没有找到对应位置,则输出下标越界并返回原头节点head。
J. 插入新的节点:将newNode的下一个节点属性next引动的节点作为node的next属性引用的节点。再将node的next属性引用newNode节点,完成插入动作。
K.返回head作为链表的头节点
3) 如果采用如下类作为测试案例:
public class T3 {
public static void main(String[] args) {
Node head = new Node(2);
head = Node.insert(head,1, 3);
head =Node.insert(head,2, 4);
head =Node.insert(head,3, 6);
head =Node.insert(head,2, 8);
Node.print(head);
}
}
可以得到如下结果:2 3 8 4 6

java基础学习周计划之3--每周一练的更多相关文章

  1. java基础学习周计划之2--面向对象

    JAVA面向对象第一天一. 知识点:1. 类和对象二. 关键问题(理论):1. 简述什么是类.什么是对象2. 简述基本类型变量与引用类型变量赋值时的差别3. 简述null的含义三. 关键代码(操作): ...

  2. java基础学习周计划之1--语言基础

    JAVA语言基础第一天一. 知识点:1. 认识Linux操作系统2. JAVA开发环境3. Eclipse IDE二. 关键问题(理论):1. Linux中常用命令pwd.ls.cd的作用2. 简述J ...

  3. 尚学堂JAVA基础学习笔记

    目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...

  4. Java基础学习-- 继承 的简单总结

    代码参考:Java基础学习小记--多态 为什么要引入继承? 还是做一个媒体库,里面可以放CD,可以放DVD.如果把CD和DVD做成两个没有联系的类的话,那么在管理这个媒体库的时候,要单独做一个添加CD ...

  5. Java基础学习中一些词语和语句的使用

    在Java基础学习中,我们刚接触Java会遇到一些词和语句的使用不清的情况,不能很清楚的理解它的运行效果会是怎么样的,如:break,continue在程序中运行效果及跳转位置, 1.先来看看brea ...

  6. Java基础学习笔记总结

    Java基础学习笔记一 Java介绍 Java基础学习笔记二 Java基础语法之变量.数据类型 Java基础学习笔记三 Java基础语法之流程控制语句.循环 Java基础学习笔记四 Java基础语法之 ...

  7. 转载-java基础学习汇总

    共2页: 1 2 下一页  Java制作证书的工具keytool用法总结 孤傲苍狼 2014-06-24 11:03 阅读:25751 评论:3     Java基础学习总结——Java对象的序列化和 ...

  8. java基础学习总结——开篇

    java是我学习的第一门编程语言,当初学习java基础的时候下了不少功夫,趁着这段时间找工作之际,好好整理一下以前学习java基础时记录的笔记,当作是对java基础学习的一个总结吧,将每一个java的 ...

  9. Java基础学习笔记(一)

    Java基础学习笔记(一) Hello World 基础代码学习 代码编写基础结构 class :类,一个类即一个java代码,形成一个class文件,写于每个代码的前端(注意无大写字母) XxxYy ...

随机推荐

  1. Linux系统下常用的快捷键

    快捷键 ctrl +  shift + '+'   将当前的终端放大 ctrl +  '-'           将当前的终端放小 ctrl +  l             清屏 ctrl +  u ...

  2. netsh自动配置网络

    工作需要经常在多个网络中切换,每次都要配置ip等,写个脚本一键完成配置: netsh interface ip set address "本地连接" static "ip ...

  3. 解决 RabbitMQ 集群 Channel shutdown: connection error 错误(HAProxy 负载均衡)

    相关文章:搭建 RabbitMQ Server 高可用集群 具体错误信息: 2018-05-04 11:21:48.116 ERROR 60848 --- [.168.0.202:8001] o.s. ...

  4. 3sum(从数组中找出三个数的和为0)

    Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all un ...

  5. access登录校验代码二

    ' 这一段是用来检查有没有输入用户名或密码的If IsNull(Trim(Me.username )) ThenDoCmd.BeepMsgBox ("请输入用户名称! ")Else ...

  6. windows10上pip install channels

    之前一直在MBP上做开发,在windows偶尔改一次代码,最近在windows上Pipi nstall了一次Django Channels,其中到twisted那步出现数坑 1. Microsoft  ...

  7. 鼠标拖拽定位和DOM各种尺寸详解

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. svn部署项目

    svn部署项目 在svn服务器上文件夹拷入项目文件~然后直接检出文件夹~即可

  9. ArcCore重构-Makefile模块化

    基于官方arc-stable-9c57d86f66be,AUTOSAR版本3.1.5   基本问题 2. 编译系统中代码文件是否编译及目标文件集中定义在boards/board_common.mk,而 ...

  10. 循环中else的用法

    name = 'hello' for x in name: print(x) if x == 'l': break #退出for循环 else: print("==for循环过程中,如果没有 ...