每周一练
第一周
一. 关键代码:
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--每周一练的更多相关文章
-
java基础学习周计划之2--面向对象
JAVA面向对象第一天一. 知识点:1. 类和对象二. 关键问题(理论):1. 简述什么是类.什么是对象2. 简述基本类型变量与引用类型变量赋值时的差别3. 简述null的含义三. 关键代码(操作): ...
-
java基础学习周计划之1--语言基础
JAVA语言基础第一天一. 知识点:1. 认识Linux操作系统2. JAVA开发环境3. Eclipse IDE二. 关键问题(理论):1. Linux中常用命令pwd.ls.cd的作用2. 简述J ...
-
尚学堂JAVA基础学习笔记
目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...
-
Java基础学习-- 继承 的简单总结
代码参考:Java基础学习小记--多态 为什么要引入继承? 还是做一个媒体库,里面可以放CD,可以放DVD.如果把CD和DVD做成两个没有联系的类的话,那么在管理这个媒体库的时候,要单独做一个添加CD ...
-
Java基础学习中一些词语和语句的使用
在Java基础学习中,我们刚接触Java会遇到一些词和语句的使用不清的情况,不能很清楚的理解它的运行效果会是怎么样的,如:break,continue在程序中运行效果及跳转位置, 1.先来看看brea ...
-
Java基础学习笔记总结
Java基础学习笔记一 Java介绍 Java基础学习笔记二 Java基础语法之变量.数据类型 Java基础学习笔记三 Java基础语法之流程控制语句.循环 Java基础学习笔记四 Java基础语法之 ...
-
转载-java基础学习汇总
共2页: 1 2 下一页 Java制作证书的工具keytool用法总结 孤傲苍狼 2014-06-24 11:03 阅读:25751 评论:3 Java基础学习总结——Java对象的序列化和 ...
-
java基础学习总结——开篇
java是我学习的第一门编程语言,当初学习java基础的时候下了不少功夫,趁着这段时间找工作之际,好好整理一下以前学习java基础时记录的笔记,当作是对java基础学习的一个总结吧,将每一个java的 ...
-
Java基础学习笔记(一)
Java基础学习笔记(一) Hello World 基础代码学习 代码编写基础结构 class :类,一个类即一个java代码,形成一个class文件,写于每个代码的前端(注意无大写字母) XxxYy ...
随机推荐
-
S1293和S2220KTV项目结束
1.界面原型(前台的界面搭建一下) 2.数据库 3.架构设计 4.约定的文件抽取 2015年7月20日下午 歌星点歌三界面的联动,数据动态加载 01.点击第一个LIstView,弹出第二个ListVi ...
-
iOS 自定义NavigationBar右侧按钮rightBarButtonItem--button
//两个按钮的父类view UIView *rightButtonView = [[UIView alloc] initWithFrame:CGRectMake(, , , )]; //历史浏览按钮 ...
-
C++中构造函数调用构造函数
今天想做道矩阵的题目时,却卡在一些编程细节上了,找了好久才发现原来是在构造函数处出了问题,然后上网百度了下,发现这篇文章说得很好:从一道题谈C++中构造函数调用构造函数,很棒! 还补充一点: 看来自己 ...
-
python抓取伯乐在线的全部文章,对标题分词后存入mongodb中
依赖包: 1.pymongo 2.jieba # -*- coding: utf-8 -*- """ @author: jiangfuqiang "" ...
-
(原)nginx 源码编译
要在nginx上开发,所以先了解下这个是干嘛的..百度一下很多 编译源码需要的组件 1.zlib 2.pcre 3.openssl 使用ubuntu的话.可以直接使用 sudo apt-get ins ...
-
webpack中利用require.ensure()实现按需加载
webpack中的require.ensure()可以实现按需加载资源包括js,css等,它会给里面require的文件单独打包,不和主文件打包在一起,webpack会自动配置名字,如0.js,1.j ...
-
inux中shell变量$#,$@,$0,$1,$2的含义
转自:http://www.cnblogs.com/fhefh/archive/2011/04/15/2017613.html linux中shell变量$#,$@,$0,$1,$2的含义解释: 变量 ...
-
Linux - 简明Shell编程02 - 变量(Variable)
脚本地址 https://github.com/anliven/L-Shell/tree/master/Shell-Basics 示例脚本及注释 #!/bin/bash v1=test-variabl ...
-
mongoDb CPU利用率100%的分析和解决
在公司的项目中,突然出现过一个情况,mongodb 的CPU利用率到达100%,导致服务器这边卡死了,请求了半天无响应,提示请求超时. 因为,当时APP用户可能会在某一个时间段集中的使用,所以,请求量 ...
-
【ocp-12c】最新Oracle OCP-071考试题库(44题)
44.(9-12)choose all that apply View the Exhibit and examine the details of the ORDER_ITEMS table. Ev ...