salut, je t'ai fais l'algo en C, tu devrais avoir aucun mal a le transposer en java.
avant de filer le lien, je vais t'expliquer comment j'ai fais, vu que c'est apparement le truc qui coince.
dans un premier temps, tu recupère la valeur maximum de ton tableau, ça te donnera le nombre de ligne a "dessiner"
Dans ton exemple ce maximum vaut 3.
ensuite tu fais une boucle avec un compteur (i dans le code) qui part de ce maximum et descend jusqu'a 0, cette boucle sert a "dessiner" les lignes une a une.
Dans cette boucle, tu passes en revue les case te ton tableau dans l'ordre. On a alors trois cas :
- Si la case courante a une valeur inférieure à la variable i, alors c'est qu'on est encore trop haut pour "dessiner" quelquechose pour cette colonne.
- Si la case courante a une valeur egale a la variable i, alors c'est le sommet d'une des colonnes de l'histograme.
- Si la case courante a une valeur suppérieur a i, c'est qu'on a deja passé le sommet et il faut dessiner un etage de la colonne. (il y a juste un cas spécial pour le bas des colones -> i == 0).
j'espere avoir été clair
voila le code
http://rafb.net/p/CiGMq474.html
et le résultat
http://rafb.net/p/TAYQ7R85.html