Java工程师的工资待遇怎么样?
Java工程师的工资待遇怎么样?
Java软件工程师一般月薪范围在4000-10000元,远远超过了应届毕业生月薪 2500元的平均水平。通常来说,有一年工作经验的Java高级软件工程师的薪酬大致在年薪10—13万左右。
从Java的应用领域来分,Java语言的应用方向主要表现在以下三个方面:首 先是大中型的商业应用;其次是桌面应用,就是常说的C/S应用;再次是移动领域应用。
综上而言JAVA就业方向为:可以从事JSP网站开发、Java编程、Java游戏开 发、Java桌面程序设计,以及其他与Java语言编程相关的工作。可进入电信、银行、保险专业软件开发公司等从事软件设计和开发工作。
Java课程介绍
一阶段:Java基础
内容有Java开发介绍、Java数组、Java面向对象、常用基础类、集合
、线程和I/O、异常处理、项目(坦克大战、打飞机等)。
二阶段:JavaWeb
内容有HTML5入门、CSS3入门、Javascript、MySQL使用、JDBC连接池
、Servlet、ajax、jQuery、项目。
三阶段:Java框架
内容有Struts2、Hibernate5、JPA、Spring4、BootStrap、echarts
图表插件使用、Maven、SpringData、SpringMVC。
四阶段:Java 云数据
亿级并发架构演进、Linux基础、搭建tomcat环境、MysQL高级、
memcached、Redis、MongoDB(而选一)、elasticsearch、cobar、Quartz、nginx反向代理和负载均衡、SSL证书配置、Keepalived双活、Haproxy、
LVS、nignx(三选一)、Rpc和Dobbo、ActiveMQ队列、Hadoop、项目(上亿人并发的抢票系统)。
POJ 3040 Allowance 贪心
>
题目链接: poj 3040
贪心 看到题目的时候完全没有什么思路,这类题目做的还是太少了,完全是面向题解编程。
我的(bierende)思路:**时间肯定是想到浪费的越少越好。 1. 当币值大于C的时候,就直接用这个硬币付工资。 2. 当币值小于C的时候,就要想一种搭配方案,使得总的价值等于或者多于C但多余的钱要尽可能少,这个就比较难想到了。
而题目中有一个条件是,大的币值能被小的整除,所以若干个小的一定能凑出大的,那么可以用一个大的或若干个小的的情况下,肯定是要选用一个大的,这样之后的搭配方案才能更好的符合”超出C的钱尽可能少“这个条件。
所以, 当当币值小于C的时候,从币值**大的开始遍历,一个小于C,那两个、三个一直到n个,直到刚好等于C或者n 1个硬币大于C,如果是后者,那就选n个,在从币值更小的硬币重复上面的过程,直到刚好等于C或者全部硬币遍历完 如果**后的全部遍历完还是不能凑到刚好等于C,那么从小到大,直到找到一个加上这个硬币刚好大于C的。如果找不到,就说明剩下的全部加起来已经没有C了,结束了
#include<cstdio> #include<algorithm> #include<iostream> #include<cstring> using namespace std; const int MAXN = 25; pair<int,int> p[MAXN];//存储硬币币值和数量 int n, c; int main() { while(scanf("%d%d", &n, &c) == 2) { for(int i=0; i<n; i ) scanf("%d%d", &p[i].first, &p[i].second); sort(p, p n);//按币值从小到大排序 int ans = 0, require, need[MAXN], rest; while(true) { rest = c; memset(need, 0, sizeof(need)); for(int i=n-1; i>=0; --i)//从大到小选择 { if(p[i].second>0) { require = min(p[i].second, rest/p[i].first);//需要这个币值的硬币的数量 rest -= require*p[i].first; need[i] = require; } if(rest == 0) break;//刚好凑出C } if(rest) { for(int i=0; i<n; i )//从小到大选择 { if(p[i].second && p[i].first>=rest)//加上这个硬币(**小)就刚好大于C { rest = 0; need[i] ; break; } } } if(rest) break;//两轮选择后仍然凑不齐C,结束 int week = 1e8;//用这个方案能发多少个星期的工资 for(int i=0; i<n; i ) { if(need[i]) week = min(week, p[i].second/need[i]); } ans =week; for(int i=0; i<n; i )//把用掉的硬币减去 { if(need[i]) p[i].second -= week*need[i]; } } cout << ans << endl; } return 0; }
相关推荐: