每周一练
第一周
一. 关键代码:
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. Java不走弯路教程(5.Client-Server模式(2)-Client)

    5.Client-Server模式(2)-Client 在上一章,我们完成一个简单的数据库服务器,并在客户端用telnet方式成功进行通信. 本章将用Java实现客户端程序,来代替telnet. 先看 ...

  2. Java IO学习--(一)概述

    在这一小节,我会试着给出Java IO(java.io)包下所有类的概述.更具体地说,我会根据类的用途对类进行分组.这个分组将会使你在未来的工作中,进行类的用途判定时,或者是为某个特定用途选择类时变得 ...

  3. iOS开发常用第三方库

    UI 动画 网络相关 Model 其他 数据库 缓存处理 PDF 图像浏览及处理 摄像照相视频音频处理 响应式框架 消息相关 版本新API的Demo 代码安全与密码 测试及调试 AppleWatch ...

  4. mysql 带条件的sum/count 使用技巧

    本测试只是简单测试,其用途不在于代替count函数配合where函数进行聚合计算,而是在复杂查询中在sum/count中加入条件,一次性求出不同条件下的聚合结果. 1.插入测试数据如图 2.sum计算 ...

  5. golang基础- ElasticSearch搜索引擎、kibana可视化工具、向ES输出数据

    转载自:https://blog.csdn.net/u013210620/article/details/78647366 安装ElasticSearch ElasticSearch是一个基于Luce ...

  6. 2010_3_1最新 完整 FFMPEG 编译详解

    在网上看了很多编译详解,都很零散.经过自己的编译,解决一些BUG,在此分享自己的一些经验... 话不多说了!直接上贴. 第一步:准备编译平台. 需要 一个 MinGW 和 一个 MSYS 安装包 以及 ...

  7. 人手一份核武器 - Hacking Team 泄露(开源)资料导览手册

    https://zhuanlan.zhihu.com/p/20102713 author:蒸米 0x00 序 事先声明本人并不是全栈安全工程师,仅仅是移动安全小菜一枚,所以对泄漏资料的分析难免会有疏忽 ...

  8. 移动App开发基本技术面

    1.UI布局 1.1.熟悉系统布局基本机制和使用方法 2.界面效果 2.1.熟悉系统提供的所有界面组件 2.2.熟悉各种功能界面效果的实现途径 2,3.动画等特殊UI效果的实现机制 3.网络请求 3. ...

  9. 兼容 Android 4.4 透明状态栏与导航栏

    http://www.apkbus.com/Android-163388-1-1.html?_dsign=73d41229 android 系统自4.2 开始 UI 上就没多大改变,4.4 也只是增加 ...

  10. (汇总)os模块以及shutil模块对文件的操作

    ''' # os 模块 os.sep 可以取代操作系统特定的路径分隔符.windows下为 '\\' os.name 字符串指示你正在使用的平台.比如对于Windows,它是'nt',而对于Linux ...