阿里巴巴数据分析十大算法师要求有算法基础,是算法编程吗

这道题开始我完全没明白在讲啥,可能是我自己算法这块训练太少了吧,也是看了好久才明白。开始说&向三位同学提到。。。&,我以为除了两位同学之外还有别人,额,好吧,并没有。。。还有它的输入输出范例开始折叠着,完全没看到好吧。。。并且输入范例给的两个参数,给的代码模板的方法就传了一个参数,也是醉了。。。这种其他因素影响了我很多时间,好了,不吐槽了,言归正传!
最开始的思路是利用四叉树,如果0代表当天还清,1代表当天没有还清,还有欠款。那么第一天两个人(小波和小钱)有四种情况00,01,10,11。第二天以此类推,总共有4的3次方种情况,也就是说遍历四叉树即可。但是这种方法太麻烦。
魏印福给出的另一种思路简直太赞,一共需要做6种决策:1、第一天,给甲还不?2、第一天,给乙还不;3、第二天,给甲还不?4、第二天,给乙还不;。。。这样总共有2的6次方种情况。他想的是用二进制的方式表示:0到63,用二进制表示成1111,这样一来我就可以第一位代表第一天是否还清小波,第二位代表第一天是否还清小钱,第三位代表第二天是否还清小波,第四位代表第二天是否还清小钱,第五位代表第三天是否还清小波,第六位代表第三天是否还清小钱。这样一来他根据二进制的移位操作便可以算出三种规则累计的失信分。部分代码如下:
package com.
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class Main {
static final int N = 1 && 6;
* 某个人没有还款,扣一分
static int rule0(int x) {
int ans = 0;
for (int i = 0; i & 6; i++) {
if ((x & (1 && i)) != 0) {
* 同一天内一点都没还款,扣一分
static int rule1(int x) {
int ans = 0;
for (int i = 0; i & 6; i += 2) {
if ((x & (1 && i)) != 0 && ((x & (1 && (i + 1))) != 0))
* 三天都存在逾期记录,扣一分
static int rule2(int x) {
int ans = 0;
for (int i = 0; i & 6; i += 2) {
if ((x & (1 && i)) != 0 || (x & (1 && (i + 1))) != 0) {
if (ans == 3)
* 给决策x进行打分
static int parse(int x) {
return rule0(x) + rule1(x) + rule2(x);
public static void main(String[] args) {
int sum = 1 && 6;//一共有64种情况
for (int i = 0; i & i++) {
System.out.println(Integer.toBinaryString(i) + ":" + parse(i));
根据其思路,我没有用二进制的移位操作,而是把二进制转成字符串,然后操作字符串,我想的代码如下:
package com.
import java.util.ArrayL
import java.util.L
import java.util.S
public class Main2 {
public static void main(String[] args) {
int num = 1 && 6;// 一共情况
List&String& list = new ArrayList&&();
for (int i = 0; i & i++) {
String str = Integer.toBinaryString(i);
// 如果不是6位,则进行补齐
StringBuilder sb = new StringBuilder(str);
if (str.length() & 6) {
for (int j = 0; j & 6 - str.length(); j++) {
sb.insert(0, 0);
list.add(sb.toString());
for (String item : list) {
int score = getFinalScore(item);
System.out.println(item + ":" + score);
* 传入字符串,获取失信分数
* @param list
private static int getFinalScore(String item) {
int score = 0;
// 匹配rule1
for (int i = 0; i & item.length(); i++) {
if ('1' == item.charAt(i)) {
// 匹配rule2
if(item.substring(0, 2).equals("11")) score++;
if(item.substring(2, 4).equals("11")) score++;
if(item.substring(4).equals("11")) score++;
// 匹配rule3
int sum = 0;
for (int i = 0; i & item.length(); i += 2) {
sum += (item.charAt(i) == '1' || item.charAt(i + 1) == '1') ? 1 : 0;
if (sum == 3)
结果展示为:
<span style="color: #:0<span style="color: #:1<span style="color: #:1<span style="color: #:3<span style="color: #:1<span style="color: #:2<span style="color: #:2<span style="color: #:4<span style="color: #:1<span style="color: #:2<span style="color: #:2<span style="color: #:4<span style="color: #:3<span style="color: #:4<span style="color: #:4<span style="color: #:6<span style="color: #:1<span style="color: #:2<span style="color: #:2<span style="color: #:4<span style="color: #:2<span style="color: #:4<span style="color: #:4<span style="color: #:6<span style="color: #:2<span style="color: #:4<span style="color: #:4<span style="color: #:6<span style="color: #:4<span style="color: #:6<span style="color: #:6<span style="color: #:8<span style="color: #:1<span style="color: #:2<span style="color: #:2<span style="color: #:4<span style="color: #:2<span style="color: #:4<span style="color: #:4<span style="color: #:6<span style="color: #:2<span style="color: #:4<span style="color: #:4<span style="color: #:6<span style="color: #:4<span style="color: #:6<span style="color: #:6<span style="color: #:8<span style="color: #:3<span style="color: #:4<span style="color: #:4<span style="color: #:6<span style="color: #:4<span style="color: #:6<span style="color: #:6<span style="color: #:8<span style="color: #:4<span style="color: #:6<span style="color: #:6<span style="color: #:8<span style="color: #:6<span style="color: #:8<span style="color: #:8<span style="color: #:10
最后再根据题目要求转换成需要输出的字符串语句,并且写一个求指定日期的后一天的方法,这个就不赘述了。
阅读(...) 评论()他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)数据分析的机器学习要什么基础?想进阿里巴巴的数据分析师职位。高人指点,谢谢。_百度知道
数据分析的机器学习要什么基础?想进阿里巴巴的数据分析师职位。高人指点,谢谢。
我有更好的答案
特征选择等算法、Python,如果会一点shell更好,常见的分类数据挖掘算法+机器学习理论。语言:SQL、Java、聚类、关联
朋友,真是缘分怎么联系?感谢你。
我是菜鸟,建议加一些技术群组里多多讨论和请教。
想交些阿里的数据分析师
官网要求sql,spss,还有业务理解,商业敏感度,还要加什么?
采纳率:83%
来自团队:
为您推荐:
其他类似问题
数据分析师的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。(十万猫妖)
(Maccha。)
(十万猫妖)
(ppvke903)
(十万猫妖)
第三方登录:

我要回帖

更多关于 数据分析的算法 的文章

 

随机推荐